screen-locker/screen_locker/tests/fixtures/duration_threshold.json
2026-11-01 17:33:33 +01:00

24 lines
1009 B
JSON

{
"_comment": [
"Shared literal fixture for the unified workout-duration gate.",
"Read by BOTH the Python locker (test_duration_threshold_fixture.py) and",
"the Flutter app (test/models/duration_threshold_fixture_test.dart).",
"Each language's own round-trip test cannot catch a drift between the two",
"sides -- only a shared literal like this one can. If you change the",
"threshold, change it here and watch both suites fail together.",
"",
"advertised_minutes is the ONLY number that may appear in a user-facing",
"message. accept_minutes is deliberately invisible: a 25-minute session",
"passes while every string still says 30. Do not advertise accept_minutes."
],
"advertised_minutes": 30,
"leeway_minutes": 5,
"accept_minutes": 25,
"cases": [
{ "duration_minutes": 24, "accepted": false },
{ "duration_minutes": 25, "accepted": true },
{ "duration_minutes": 30, "accepted": true },
{ "duration_minutes": 60, "accepted": true }
]
}