You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.1 KiB
63 lines
2.1 KiB
2 years ago
|
import { describe, expect, test } from '@jest/globals'
|
||
2 years ago
|
import { DieState, isHeldState, isSelectedState, setDeselected, setSelected, toggleSelected } from './gameData'
|
||
2 years ago
|
|
||
|
describe('isHeldState', () => {
|
||
|
test.each<[DieState, boolean]>([
|
||
|
[DieState.ROLLED, false],
|
||
|
[DieState.SELECTED, false],
|
||
|
[DieState.HELD, true],
|
||
|
[DieState.HELD_SELECTED, true],
|
||
|
[DieState.SCORED, false],
|
||
2 years ago
|
])('(%j) returns %j', (state, value): void => {
|
||
2 years ago
|
expect(isHeldState(state)).toEqual(value)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('isSelectedState', () => {
|
||
|
test.each<[DieState, boolean]>([
|
||
|
[DieState.ROLLED, false],
|
||
|
[DieState.SELECTED, true],
|
||
|
[DieState.HELD, false],
|
||
|
[DieState.HELD_SELECTED, true],
|
||
|
[DieState.SCORED, false],
|
||
2 years ago
|
])('(%j) returns %j', (state, value): void => {
|
||
2 years ago
|
expect(isSelectedState(state)).toEqual(value)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('setSelected', () => {
|
||
|
test.each<[DieState, DieState]>([
|
||
|
[DieState.ROLLED, DieState.SELECTED],
|
||
|
[DieState.SELECTED, DieState.SELECTED],
|
||
|
[DieState.HELD, DieState.HELD_SELECTED],
|
||
|
[DieState.HELD_SELECTED, DieState.HELD_SELECTED],
|
||
|
[DieState.SCORED, DieState.SCORED],
|
||
2 years ago
|
])('(%j) returns %j', (state, value): void => {
|
||
2 years ago
|
expect(setSelected(state)).toEqual(value)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('setDeselected', () => {
|
||
|
test.each<[DieState, DieState]>([
|
||
|
[DieState.ROLLED, DieState.ROLLED],
|
||
|
[DieState.SELECTED, DieState.ROLLED],
|
||
|
[DieState.HELD, DieState.HELD],
|
||
|
[DieState.HELD_SELECTED, DieState.HELD],
|
||
|
[DieState.SCORED, DieState.SCORED],
|
||
2 years ago
|
])('(%j) returns %j', (state, value): void => {
|
||
2 years ago
|
expect(setDeselected(state)).toEqual(value)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('toggleSelected', () => {
|
||
|
test.each<[DieState, DieState]>([
|
||
|
[DieState.ROLLED, DieState.SELECTED],
|
||
|
[DieState.SELECTED, DieState.ROLLED],
|
||
|
[DieState.HELD, DieState.HELD_SELECTED],
|
||
|
[DieState.HELD_SELECTED, DieState.HELD],
|
||
|
[DieState.SCORED, DieState.SCORED],
|
||
2 years ago
|
])('(%j) returns %j', (state, value): void => {
|
||
2 years ago
|
expect(toggleSelected(state)).toEqual(value)
|
||
|
})
|
||
|
})
|