screen-locker/screen_locker/tests/fixtures/duration_threshold.json
Krzysztof kuhy Rudnicki c63a02f9eb
Some checks are pending
pre-commit / pre-commit (push) Waiting to run
Tests / test (3.10) (push) Waiting to run
Tests / test (3.11) (push) Waiting to run
Tests / test (3.12) (push) Waiting to run
Tests / lock-popup-safety (push) Waiting to run
release-apk / release (APK) (push) Waiting to run
Add sync-status card and duration-threshold fixture
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-15 18:41:31 +02: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 35-minute session",
"passes while every string still says 40. Do not advertise accept_minutes."
],
"advertised_minutes": 40,
"leeway_minutes": 5,
"accept_minutes": 35,
"cases": [
{ "duration_minutes": 34, "accepted": false },
{ "duration_minutes": 35, "accepted": true },
{ "duration_minutes": 40, "accepted": true },
{ "duration_minutes": 60, "accepted": true }
]
}