CCExtractor / CCExtractor/ultimate_alarm_clock

Enhancement: Add unit tests for AlarmModel (currently zero test coverage)

Abierto
#882 1 comentario 0 reacciones 0 asignados Ver en GitHub
on hold
Lenguaje dominante
Dart
Estrellas
112
Forks
227
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## Description

While working on some bug fixes in the data layer, I noticed the [test/](cci:7://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/test:0:0-0:0) directory only has a single file ([splash_screen_view_test.dart](cci:7://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/test/splash_screen_view_test.dart:0:0-0:0)) that checks if an Image widget exists on the splash screen.
There's no test coverage at all for the data models or providers.

[AlarmModel](cci:2://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:10:0-429:1) in particular has 65+ fields, multiple constructors ([fromMap](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:186:2-238:3), `fromJson`, `fromDocumentSnapshot`), and serialization helpers ([toMap](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:357:2-413:3), [toJson](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:353:2-355:3)) , all completely untested. My recent PRs (#868, #879) both caught bugs in this exact layer that tests would have caught automatically.

## What I would like to add

A proper unit test suite for [AlarmModel](cci:2://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:10:0-429:1) covering:
- Constructor correctness (default, [fromMap](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:186:2-238:3), `fromJson`)
- Serialization roundtrips ([toMap](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:357:2-413:3) → [fromMap](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:186:2-238:3), [toJson](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:353:2-355:3) → `fromJson`)
- Edge cases (empty strings, boundary values for fields like `minutesSinceMidnight`)
- Day list encoding/decoding via [boolListToString](cci:1://file:///Users/rajesh/Desktop/ultimate-alarm-clock/ultimate_alarm_clock/lib/app/data/models/alarm_model.dart:415:2-421:3)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.