CCExtractor / CCExtractor/ultimate_alarm_clock

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

未关闭
#882 1 条评论 0 个 reaction 已指派 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 摘要。