-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharchitect_mode_engine_test.js
More file actions
73 lines (58 loc) · 2 KB
/
Copy patharchitect_mode_engine_test.js
File metadata and controls
73 lines (58 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// SPDX-License-Identifier: MPL-2.0
/**
* ArchitectModeEngine Tests — default state, tab labels, tool labels,
* entity counting, undo/redo availability.
*/
import { assertEquals, assertExists } from "jsr:@std/assert";
import {
defaultState,
tabLabel,
allTabs,
toolLabel,
countSelectedEntities,
countEntitiesByKind,
canUndo,
canRedo,
} from "../src/core/ArchitectModeEngine.res.js";
// -- defaultState --
Deno.test("defaultState exists and has expected shape", () => {
assertExists(defaultState);
assertEquals(typeof defaultState, "object");
assertEquals(defaultState.entities.length, 0);
assertEquals(defaultState.zones.length, 0);
assertEquals(defaultState.gridVisible, true);
assertEquals(defaultState.snapToGrid, true);
assertEquals(defaultState.gridSize, 32);
assertEquals(defaultState.zoom, 1.0);
assertEquals(defaultState.error, undefined);
});
// -- tabLabel --
Deno.test("tabLabel returns correct labels", () => {
assertEquals(tabLabel("Canvas"), "Canvas");
assertEquals(tabLabel("Properties"), "Properties");
assertEquals(tabLabel("AiSuggestions"), "AI Suggestions");
assertEquals(tabLabel("Validation"), "Validation");
});
// -- allTabs --
Deno.test("allTabs contains all four tabs", () => {
assertEquals(allTabs.length, 4);
});
// -- toolLabel --
Deno.test("toolLabel returns correct labels for simple tools", () => {
assertEquals(toolLabel("SelectTool"), "Select");
assertEquals(toolLabel("EraseTool"), "Erase");
assertEquals(toolLabel("WireTool"), "Wire");
assertEquals(toolLabel("ZoneTool"), "Zone");
assertEquals(toolLabel("PanTool"), "Pan");
});
// -- countSelectedEntities with empty array --
Deno.test("countSelectedEntities returns 0 for empty array", () => {
assertEquals(countSelectedEntities([]), 0);
});
// -- canUndo / canRedo --
Deno.test("canUndo returns false for default state", () => {
assertEquals(canUndo(defaultState), false);
});
Deno.test("canRedo returns false for default state", () => {
assertEquals(canRedo(defaultState), false);
});