import { describe, it, expect } from 'vitest'; import { FloriferousGame } from './floriferous-game.js'; import { FloriferousPlayer } from './floriferous-player.js'; describe('FloriferousGame', () => { const alice = new FloriferousPlayer({ name: 'Alice', score: 2, rowAtEndOfGame: 0 }); const bob = new FloriferousPlayer({ name: 'Bob', score: 1, rowAtEndOfGame: 1 }); const bobWithTwoPoints = new FloriferousPlayer({ name: 'Bob', score: 2, rowAtEndOfGame: 1 }); it('Determines a winner', () => { const game = new FloriferousGame(); // WHEN game.addPlayer(alice); game.addPlayer(bob); // THEN expect(game.winner).toBe('Alice'); }); it('Breaks a tie using the player closest to the top of the board', () => { // GIVEN const game = new FloriferousGame(); // WHEN game.addPlayer(alice); game.addPlayer(bobWithTwoPoints); // THEN expect(game.winner).toBe('Alice'); }); it('Can give a pretty summary', () => { // GIVEN const game = new FloriferousGame({ playedTs: new Date('2022-08-28T13:12Z'), players: [alice, bob] }); // WHEN const prettySummary = game.prettySummary; // THEN expect(prettySummary).toBe( 'Sunday, 28 August 2022, 14:12: Alice won with 2 points. Bob: 1 point.' ); }); });