Record planting day and show harvest dates

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-10-06 10:07:21 +01:00
parent 07057e6c3d
commit 83a9cb6dcc
11 changed files with 282 additions and 44 deletions

View file

@ -46,6 +46,34 @@ class StoreTests(unittest.TestCase):
self.assertEqual(len(snapshot["checks"]), 20)
self.assertTrue(all(snapshot["checks"].values()))
def test_planting_round_trip(self):
spring_three = {"year": 1, "season": "spring", "day": 3}
result = self.store.set_planting("crop-parsnip", spring_three, "fred")
self.assertEqual(result["revision"], 1)
self.assertEqual(self.store.snapshot()["plantings"], {"crop-parsnip": spring_three})
self.store.set_planting("crop-parsnip", None, "fred")
snapshot = self.store.snapshot()
self.assertEqual(snapshot["plantings"], {})
self.assertEqual(snapshot["revision"], 2)
def test_undated_planted_checks_migrate_to_plantings(self):
self.store.set_check("planted-crop-parsnip", True, "fred")
self.store.set_check("planted-crop-potato", False, "fred")
self.store.initialize()
snapshot = self.store.snapshot()
self.assertEqual(snapshot["checks"], {})
self.assertEqual(
snapshot["plantings"], {"crop-parsnip": {"year": None, "season": None, "day": None}}
)
self.assertEqual(snapshot["revision"], 3)
def test_game_date_validation(self):
self.assertTrue(app.valid_game_date({"year": 2, "season": "winter", "day": 28}))
self.assertFalse(app.valid_game_date({"year": 1, "season": "spring", "day": 29}))
self.assertFalse(app.valid_game_date({"year": True, "season": "spring", "day": 1}))
self.assertFalse(app.valid_game_date({"year": 1, "season": "monsoon", "day": 1}))
class StaticInteractionTests(unittest.TestCase):
def test_native_checkboxes_cover_each_tickable_row(self):