|
| 1 | +import { describe, expect, it } from 'vitest'; |
| 2 | +import { getExperienceMindState } from '../game.utils.js'; |
| 3 | +import { ExperienceMindState } from '../types.js'; |
| 4 | + |
| 5 | +describe('game-utils', () => { |
| 6 | + describe('#getExperienceMindstate', () => { |
| 7 | + it('returns the correct value for the given mind state (enum test)', () => { |
| 8 | + Object.keys(ExperienceMindState).forEach((mindState) => { |
| 9 | + expect(getExperienceMindState(mindState)).toEqual( |
| 10 | + ExperienceMindState[mindState as keyof typeof ExperienceMindState] |
| 11 | + ); |
| 12 | + }); |
| 13 | + }); |
| 14 | + |
| 15 | + it('returns the correct value for the given mind state (explicit test)', () => { |
| 16 | + // I added this test because at one point I had accidentally |
| 17 | + // removed some of the mind states from the enum but no test caught it. |
| 18 | + expect(getExperienceMindState('clear')).toEqual(0); |
| 19 | + expect(getExperienceMindState('dabbling')).toEqual(1); |
| 20 | + expect(getExperienceMindState('perusing')).toEqual(2); |
| 21 | + expect(getExperienceMindState('learning')).toEqual(3); |
| 22 | + expect(getExperienceMindState('thoughtful')).toEqual(4); |
| 23 | + expect(getExperienceMindState('thinking')).toEqual(5); |
| 24 | + expect(getExperienceMindState('considering')).toEqual(6); |
| 25 | + expect(getExperienceMindState('pondering')).toEqual(7); |
| 26 | + expect(getExperienceMindState('ruminating')).toEqual(8); |
| 27 | + expect(getExperienceMindState('concentrating')).toEqual(9); |
| 28 | + expect(getExperienceMindState('attentive')).toEqual(10); |
| 29 | + expect(getExperienceMindState('deliberative')).toEqual(11); |
| 30 | + expect(getExperienceMindState('interested')).toEqual(12); |
| 31 | + expect(getExperienceMindState('examining')).toEqual(13); |
| 32 | + expect(getExperienceMindState('understanding')).toEqual(14); |
| 33 | + expect(getExperienceMindState('absorbing')).toEqual(15); |
| 34 | + expect(getExperienceMindState('intrigued')).toEqual(16); |
| 35 | + expect(getExperienceMindState('scrutinizing')).toEqual(17); |
| 36 | + expect(getExperienceMindState('analyzing')).toEqual(18); |
| 37 | + expect(getExperienceMindState('studious')).toEqual(19); |
| 38 | + expect(getExperienceMindState('focused')).toEqual(20); |
| 39 | + expect(getExperienceMindState('very focused')).toEqual(21); |
| 40 | + expect(getExperienceMindState('engaged')).toEqual(22); |
| 41 | + expect(getExperienceMindState('very engaged')).toEqual(23); |
| 42 | + expect(getExperienceMindState('cogitating')).toEqual(24); |
| 43 | + expect(getExperienceMindState('fascinated')).toEqual(25); |
| 44 | + expect(getExperienceMindState('captivated')).toEqual(26); |
| 45 | + expect(getExperienceMindState('engrossed')).toEqual(27); |
| 46 | + expect(getExperienceMindState('riveted')).toEqual(28); |
| 47 | + expect(getExperienceMindState('very riveted')).toEqual(29); |
| 48 | + expect(getExperienceMindState('rapt')).toEqual(30); |
| 49 | + expect(getExperienceMindState('very rapt')).toEqual(31); |
| 50 | + expect(getExperienceMindState('enthralled')).toEqual(32); |
| 51 | + expect(getExperienceMindState('nearly locked')).toEqual(33); |
| 52 | + expect(getExperienceMindState('mind lock')).toEqual(34); |
| 53 | + }); |
| 54 | + |
| 55 | + it('returns undefined if the given mind state is invalid', () => { |
| 56 | + expect(getExperienceMindState('foo')).toBe(undefined); |
| 57 | + }); |
| 58 | + }); |
| 59 | +}); |
0 commit comments