feat(trails): render authoritative player route trails
This commit is contained in:
@@ -507,3 +507,17 @@ test("finished-player exit returns remaining browsers to the waiting lobby", ()
|
||||
assert.match(leaveHandler, /leaving_role == MAZE32_ROLE_PLAYER &&\s*gateway->lobby\.phase != MAZE32_LOBBY_WAITING;/);
|
||||
assert.doesNotMatch(leaveHandler, /gateway->game\.phase != MAZE32_GAME_PHASE_FINISHED/);
|
||||
});
|
||||
|
||||
test("authoritative trail masks render bounded yellow, blue, and shared paths", () => {
|
||||
const script = fs.readFileSync(path.join(project, "web/player.js"), "utf8");
|
||||
const css = fs.readFileSync(path.join(project, "web/player.css"), "utf8");
|
||||
assert.equal(player.snapshotIsValid({width: 2, height: 2, cells: [[0, 6, 0, 3, 0]], objects: []}), true);
|
||||
assert.equal(player.snapshotIsValid({width: 2, height: 2, cells: [[0, 6, 0, 4, 0]], objects: []}), false);
|
||||
assert.match(script, /function renderTrails\(/);
|
||||
assert.match(script, /if \(owners & 1\) paths\[0\]\.push/);
|
||||
assert.match(script, /if \(owners & 2\) paths\[1\]\.push/);
|
||||
assert.match(script, /renderTrails\(maze, snapshot\.cells/);
|
||||
assert.match(css, /\.trail-layer \{[^}]*pointer-events: none/);
|
||||
assert.match(css, /\.trail-player-one \{ stroke: var\(--p1\); stroke-dasharray/);
|
||||
assert.match(css, /\.trail-player-two \{ stroke: var\(--p2\); stroke-dasharray/);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user