Files
HexTrails/tests/hex-video-lab.test.js
T

22 lines
873 B
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { Game, solve, validateLevel } from '../src/core.js';
import { makeLabLevel } from '../labs/hex-video/fixture.js';
test('video lab fixture validates and can complete through real game actions', () => {
const level = makeLabLevel();
assert.deepEqual(validateLevel(level), []);
assert.equal(level.tiles.length, 18);
const solution = solve(level), game = new Game(level);
assert.equal(solution.solvable, true);
const blocked = game.tap('lab-0');
assert.equal(blocked.status, 'blocked');
assert.equal(game.moves, level.moveLimit);
for (const id of solution.order) assert.equal(game.tap(id).status, 'exit');
assert.equal(game.won, true);
assert.equal(game.moves, 0);
assert.equal(game.undo(), true);
assert.equal(game.won, false);
assert.equal(game.tiles.length, 1);
});