diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
| commit | 027053b11a3a5d861ed2fa2db245388bd95ac246 (patch) | |
| tree | 84dfd90642bb6d8eb4e0e3fa3a9d651ba29b41e8 /tests/engine-test.scm | |
| parent | 927f37639a3d5a0d881a5c8709f2cf577aadb15e (diff) | |
Progress
Diffstat (limited to 'tests/engine-test.scm')
| -rw-r--r-- | tests/engine-test.scm | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/tests/engine-test.scm b/tests/engine-test.scm index 2c443cc..67b9942 100644 --- a/tests/engine-test.scm +++ b/tests/engine-test.scm @@ -1,4 +1,4 @@ -(import scheme (chicken base) (chicken keyword) srfi-64 defstruct) +(import scheme (chicken base) (chicken keyword) srfi-64 defstruct (srfi 69)) ;; --- Mocks --- @@ -171,4 +171,31 @@ cam (game-camera g)))) +(test-group "make-game-state" + (let ((s (make-game-state create: (lambda (g) 'created) + update: (lambda (g dt) 'updated) + render: (lambda (g) 'rendered)))) + (test-assert "state has create hook" (state-hook s #:create)) + (test-assert "state has update hook" (state-hook s #:update)) + (test-assert "state has render hook" (state-hook s #:render))) + (let ((s (make-game-state))) + (test-equal "default state hooks are #f" #f (state-hook s #:create)) + (test-equal "default state update is #f" #f (state-hook s #:update)))) + +(test-group "game-add-state! and game-start-state!" + (let* ((created? #f) + (game (make-game)) + (state (make-game-state + create: (lambda (g) (set! created? #t))))) + (game-add-state! game 'play state) + (test-equal "active-state defaults to #f" #f (game-active-state game)) + (game-start-state! game 'play) + (test-equal "active-state set after start" 'play (game-active-state game)) + (test-assert "create hook called on start" created?))) + +(test-group "game states defaults" + (let ((game (make-game))) + (test-assert "states is a hash-table" (hash-table? (game-states game))) + (test-equal "active-state defaults to #f" #f (game-active-state game)))) + (test-end "engine") |
