1
0
Commit Graph

47 Commits

Author SHA1 Message Date
b9ed3ed37f
refactor to allow use of routing 2026-02-22 15:18:34 +01:00
36d6a9ed9b
switch language to bavarian 2026-02-22 12:54:22 +01:00
17612b2c6b
make test page easier to read on mobile 2026-02-22 12:52:33 +01:00
dbe20d548d
switch over to mithril fragment method 2026-02-22 12:51:44 +01:00
bb3ad61950
make import paths absolute 2026-02-22 12:51:28 +01:00
7df55afd1a
move game points into name cell 2026-02-18 19:21:14 +01:00
3a0db3c620
Create CNAME 2026-02-18 19:13:38 +01:00
63b7446528
prevent github pages from using jekyll 2026-02-18 19:09:06 +01:00
d5952bf83a
change name in license 2026-02-18 19:06:13 +01:00
eba36600b9
make session UI somewhat nice 2026-02-18 19:01:14 +01:00
0cc3c991e5
restructure basic UI for better semantics 2026-02-18 19:01:10 +01:00
979dfb9b08
make basic UI fully functional 2026-02-18 19:01:03 +01:00
674aad81fe
add event listener to game on session destructuring 2026-02-18 19:00:40 +01:00
a961c87e96
basic session selector 2026-02-17 21:31:33 +01:00
353c441722
add repo method to load specific session 2026-02-17 20:41:08 +01:00
ff04d19185
make basic ui remember one session 2026-02-17 00:38:53 +01:00
ad9f9035a1
update stored session when the model changes 2026-02-17 00:30:52 +01:00
ffd3529055
add a general change event to the session model 2026-02-17 00:25:31 +01:00
685359ebd9
switch game over to a general change event 2026-02-16 23:10:51 +01:00
3bf6cc52ab
switch round over to a general change event 2026-02-16 22:51:49 +01:00
624063b91e
implement very basic UI 2026-02-15 22:31:36 +01:00
bcb08a64d2
fix bug in tailor calculation
The tailor calculation did not go down to one point if the losing team
scored points only after the winning team reached the tailor goal. This
has been fixed.

This made me realize that I forgot to write tests for the `results`
property of the game and session models. Those will follow in a later
commit.
2026-02-15 22:29:03 +01:00
b89206f113
implement session repository 2026-02-15 18:09:50 +01:00
fb2fd76c6c
add a bit of documentation 2026-02-15 15:43:15 +01:00
f073129f38
test that invalid constructor forms throw 2026-02-15 04:41:40 +01:00
2a2472a052
test session id invalid fromStruct 2026-02-15 04:37:52 +01:00
a27f3ac3af
move db tests cleanup test behind actual test 2026-02-15 04:32:56 +01:00
2af6cb4f6a
test exception types and messages
As I noted in commit 85b9c2459c I noticed
that the testing of the invalidity of invalid struct "deserialization"
was not sound. That was because if one error was not actually thrown,
the test would still be satisfied by the following error. However, if
only that specific thing was wrong, no error would be thrown and an
invalid struct would be accepted.

Therefore I now changed those tests to also check the exception type and
its message. This means that if an exception is missing, it is
immediately picked up.

I also found out that one exception was actually wrong. I had mistyped
`TypeError` as `TypError`. Funnily enough that still causes an exception
to be thrown at that location, but a `ReferenceError` instead of the
`TypeError`. Such bugs should now be more easily noticable.
2026-02-15 04:27:08 +01:00
729d70c80f
reword principles in README 2026-02-15 03:45:32 +01:00
80b7203805
implement wrapper for single IndexedDB database 2026-02-15 03:34:25 +01:00
b2ab89a151
extend session with ID 2026-02-15 00:50:56 +01:00
384aaf2fe7
flesh out README.md 2026-02-12 02:15:51 +01:00
81bbad1319
rename internals of round model for readability 2026-02-12 01:12:54 +01:00
85b9c2459c
switch from JSON to structural cloning
There are two reasons for this:

1. I've reconsidered my original plan to store the past games in
   localStorage, because that would make it difficult to display them in
   historical order, and would necessitate more complex logic for
   updating and removing sessions.

2. I've been unhappy with how I did the testing of the serialization and
   deserialization logic. So I redid it, and now I'm satisfied with it.

I've noticed that the testing methodology for the invalid fromStruct
method tests is not fully sound. If a check is accidentally removed that
test would not detect that, as long as it is not the very last. That is
because then the next error triggers. Therefore that will need to be
revisited.
2026-02-12 01:01:03 +01:00
82082ef84e
reorganize unit tests 2026-02-11 21:10:50 +01:00
7aeba40043
stop creating games on session creation
This is necessary to allow users to create new sessions with different
game point goals, and have that goal be in effect for the very first
game.
2026-02-09 23:20:41 +01:00
220a9b40e4
implement model for sessions of multiple games 2026-02-09 23:16:23 +01:00
6971a2b20c
make round finishing trigger an event 2026-02-09 20:24:17 +01:00
5089bef0f7
test game deserialization relying on round deserialization 2026-02-09 20:13:21 +01:00
1cb03ef70c
implement model for full games 2026-02-09 03:36:18 +01:00
13971d2073
implement model for round results 2026-02-09 03:35:38 +01:00
df588af0c6
make winner setable by setter 2026-02-09 00:34:25 +01:00
369b279470
make victory trigger an event 2026-02-09 00:28:15 +01:00
c57b5c2ac0
implement JSON for round model 2026-02-08 23:56:34 +01:00
41823cd8ad
implement model for rounds 2026-02-08 23:00:05 +01:00
b9ded8c367
set up unit tests 2026-02-08 22:59:36 +01:00
8a7b8b4e7e
Initial commit 2026-02-08 21:05:11 +01:00