import {test} from 'node:test'; import assert from 'node:assert/strict'; import {GAME_DEFINITIONS,getGameDefinition} from '../fixtures/game-definitions.ts'; test('each registration binds its own route, rules, presentation and chat',()=>{ for(const definition of Object.values(GAME_DEFINITIONS)){ assert.equal(getGameDefinition(definition.key),definition); const binding=definition.createGame('configured-game-id'); assert.equal(binding.entry.key,definition.key); assert.equal(binding.entry.route,definition.route); assert.equal(binding.entry.gameId,'configured-game-id'); } const eqw=GAME_DEFINITIONS.erqiwang; assert.equal(eqw.createPageClass,'ErqiwangCreateRoomView'); assert.equal(eqw.roomViewClass,'ErqiwangRoomView'); assert.equal(eqw.chat.phrases[0].text,'快点吧,我等的花儿都谢了。'); assert.throws(()=>eqw.createGame('id').entry.resolveSeatCount([1,4,1,2]),/二七王/); assert.equal(GAME_DEFINITIONS.Game_Surface_3.createPageClass,'TemplateCreateRoomView'); assert.equal(GAME_DEFINITIONS.Game_Surface_3.chat.phrases[0].text,'你好'); assert.throws(()=>getGameDefinition('missing'),/Unknown game/); });