diff options
Diffstat (limited to 'tests/renderer-test.scm')
| -rw-r--r-- | tests/renderer-test.scm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/renderer-test.scm b/tests/renderer-test.scm index 1a8f7df..8ebeedf 100644 --- a/tests/renderer-test.scm +++ b/tests/renderer-test.scm @@ -266,4 +266,32 @@ (test-assert "does not crash with full scene" (begin (render-debug-scene! renderer scene) #t))))) +(test-group "scene-entities must be plists" + (let* ((cam (make-camera x: 0 y: 0)) + (tileset (make-tileset tilewidth: 16 tileheight: 16 + spacing: 0 tilecount: 100 columns: 10 + image-source: "" image: #f)) + (layer (make-layer name: "ground" width: 1 height: 1 map: '((0)))) + (tilemap (make-tilemap width: 1 height: 1 tilewidth: 16 tileheight: 16 + tileset-source: "" tileset: tileset + layers: (list layer) objects: '())) + (tex 'mock-texture) + (entity (list #:type 'box #:x 10 #:y 20 #:width 16 #:height 16 #:tile-id 1)) + (cell (vector entity 'extra-data 0 100 'linear #t)) + (scene-ok (make-scene entities: (list entity) + tilemap: tilemap camera: cam + tileset-texture: tex camera-target: #f)) + (scene-bad (make-scene entities: (list cell) + tilemap: tilemap camera: cam + tileset-texture: tex camera-target: #f))) + (test-assert "render-scene! works with plist entities" + (begin (render-scene! #f scene-ok) #t)) + (test-error "render-scene! errors when entity list contains a vector" + #t (render-scene! #f scene-bad)) + (test-assert "extracting entity from cell vector fixes the issue" + (let ((scene-fixed (make-scene entities: (list (vector-ref cell 0)) + tilemap: tilemap camera: cam + tileset-texture: tex camera-target: #f))) + (begin (render-scene! #f scene-fixed) #t))))) + (test-end "renderer") |
