breakout71/src/level_editor_util.test.ts

48 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-03-14 11:59:49 +01:00
import {moveLevel, resizeLevel, setBrick} from "./levels_editor_util";
const baseLevel = {
name: '',
bricks: 'AAAA',
size: 2,
svg: null,
color: ''
}
describe('resizeLevel', () => {
it('should expand levels', () => {
expect(resizeLevel(baseLevel, 1)).toStrictEqual({bricks: 'AA_AA____', size: 3});
})
it('should shrink levels', () => {
expect(resizeLevel(baseLevel, -1)).toStrictEqual({bricks: 'A', size: 1});
})
})
describe('moveLevel', () => {
it('should do nothing when coords are 0/0', () => {
expect(moveLevel(baseLevel, 0, 0)).toStrictEqual({bricks: 'AAAA'});
})
it('should move right', () => {
expect(moveLevel(baseLevel, 1, 0)).toStrictEqual({bricks: '_A_A'});
})
it('should move left', () => {
expect(moveLevel(baseLevel, -1, 0)).toStrictEqual({bricks: 'A_A_'});
})
it('should move up', () => {
expect(moveLevel(baseLevel, 0, -1)).toStrictEqual({bricks: 'AA__'});
})
it('should move down', () => {
expect(moveLevel(baseLevel, 0, 1)).toStrictEqual({bricks: '__AA'});
})
})
describe('setBrick', () => {
it('should set the first brick', () => {
expect(setBrick(baseLevel, 0, 'C')).toStrictEqual({bricks: 'CAAA'});
})
it('should any brick', () => {
expect(setBrick(baseLevel, 2, 'C')).toStrictEqual({bricks: 'AACA'});
})
})