CCExtractor / CCExtractor/ultimate_alarm_clock

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

Offen
#882 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
on hold
Vorherrschende Sprache
Dart
Sterne
112
Forks
227
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## 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)

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.