CCExtractor / CCExtractor/ultimate_alarm_clock

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

オープン
#882 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
on hold
主要言語
Dart
スター
112
フォーク
227
PR マージ指標
30日以内にマージされた PR はありません

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。