diff options
Diffstat (limited to 'src/Board/Board.test.ts')
-rw-r--r-- | src/Board/Board.test.ts | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/Board/Board.test.ts b/src/Board/Board.test.ts index 7e99581..349a4aa 100644 --- a/src/Board/Board.test.ts +++ b/src/Board/Board.test.ts @@ -1,9 +1,10 @@ import assert from 'assert'; -import Tile, { Feature } from '../Tile/Tile'; +import Tile, { Feature, Direction } from '../Tile/Tile'; import TileOnBoard from '../Tile/TileOnBoard'; import Board from './Board'; const { Road, Town, Grass } = Feature; +const { North } = Direction; describe('Board', () => { describe('constructor', () => { @@ -28,4 +29,29 @@ describe('Board', () => { assert.deepStrictEqual(legalMoves[3], { side: 2, rotation: 2, attachTo, tile }); }); }); + + describe('attach', () => { + it('Should push new tile to the list and assign correct coordinates', () => { + const board = new Board(); + + const attachment = { + tile: new Tile(Town, [Grass, Town, Grass, Town]), + attachTo: board.tiles[0], + orientation: 0, + side: North, + }; + + const expectedTileOnBoard = new TileOnBoard( + Town, + [Grass, Town, Grass, Town], + false, + { x: 0, y: 1 }, + 0 + ); + + board.attach(attachment); + assert.strictEqual(board.tiles.length, 2); + assert.deepStrictEqual(board.tiles[1], expectedTileOnBoard); + }); + }); }); |