X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=tests%2Fjs%2Fhelpers%2Ftracker.test.js;fp=tests%2Fjs%2Fhelpers%2Ftracker.test.js;h=ceaaaccd254fc3dbb354fae469d8d76d2c3e8001;hb=816690cc4fadff954f4407999550f7feec2884da;hp=0000000000000000000000000000000000000000;hpb=f1171d67a86fe2b49f68b09153d9e928b5a0c22d;p=alttp.git diff --git a/tests/js/helpers/tracker.test.js b/tests/js/helpers/tracker.test.js new file mode 100644 index 0000000..ceaaacc --- /dev/null +++ b/tests/js/helpers/tracker.test.js @@ -0,0 +1,204 @@ +import { + CONFIG, + configureDungeons, + getDungeonBoss, + getDungeonRemainingItems, + makeEmptyState, +} from 'helpers/tracker'; + +describe('default dungeon configuration', () => { + const dungeons = configureDungeons(CONFIG); + const state = makeEmptyState(); + + test('HC', () => { + const dungeon = dungeons.find(d => d.id === 'hc'); + expect(dungeon).not.toBeNull(); + expect(getDungeonRemainingItems(state, dungeon)).toBe(6); + }); + + test('CT', () => { + const dungeon = dungeons.find(d => d.id === 'ct'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('aga'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(0); + }); + + test('GT', () => { + const dungeon = dungeons.find(d => d.id === 'gt'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('aga'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(20); + }); + + test('EP', () => { + const dungeon = dungeons.find(d => d.id === 'ep'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('armos'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(3); + }); + + test('DP', () => { + const dungeon = dungeons.find(d => d.id === 'dp'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('lanmolas'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(2); + }); + + test('TH', () => { + const dungeon = dungeons.find(d => d.id === 'th'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('moldorm'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(2); + }); + + test('PD', () => { + const dungeon = dungeons.find(d => d.id === 'pd'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('helma'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(5); + }); + + test('SP', () => { + const dungeon = dungeons.find(d => d.id === 'sp'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('arrghus'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(6); + }); + + test('SW', () => { + const dungeon = dungeons.find(d => d.id === 'sw'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('mothula'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(2); + }); + + test('TT', () => { + const dungeon = dungeons.find(d => d.id === 'tt'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('blind'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(4); + }); + + test('IP', () => { + const dungeon = dungeons.find(d => d.id === 'ip'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('kholdstare'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(3); + }); + + test('MM', () => { + const dungeon = dungeons.find(d => d.id === 'mm'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('vitreous'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(2); + }); + + test('TR', () => { + const dungeon = dungeons.find(d => d.id === 'tr'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('trinexx'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(5); + }); +}); + +describe('keysanity dungeon configuration', () => { + const config = { + ...CONFIG, + wildMap: true, + wildCompass: true, + wildSmall: true, + wildBig: true, + }; + const dungeons = configureDungeons(config); + const state = makeEmptyState(); + + test('HC', () => { + const dungeon = dungeons.find(d => d.id === 'hc'); + expect(dungeon).not.toBeNull(); + expect(getDungeonRemainingItems(state, dungeon)).toBe(8); + }); + + test('CT', () => { + const dungeon = dungeons.find(d => d.id === 'ct'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('aga'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(2); + }); + + test('GT', () => { + const dungeon = dungeons.find(d => d.id === 'gt'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('aga'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(27); + }); + + test('EP', () => { + const dungeon = dungeons.find(d => d.id === 'ep'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('armos'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(6); + }); + + test('DP', () => { + const dungeon = dungeons.find(d => d.id === 'dp'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('lanmolas'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(6); + }); + + test('TH', () => { + const dungeon = dungeons.find(d => d.id === 'th'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('moldorm'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(6); + }); + + test('PD', () => { + const dungeon = dungeons.find(d => d.id === 'pd'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('helma'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(14); + }); + + test('SP', () => { + const dungeon = dungeons.find(d => d.id === 'sp'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('arrghus'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(10); + }); + + test('SW', () => { + const dungeon = dungeons.find(d => d.id === 'sw'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('mothula'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(8); + }); + + test('TT', () => { + const dungeon = dungeons.find(d => d.id === 'tt'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('blind'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(8); + }); + + test('IP', () => { + const dungeon = dungeons.find(d => d.id === 'ip'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('kholdstare'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(8); + }); + + test('MM', () => { + const dungeon = dungeons.find(d => d.id === 'mm'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('vitreous'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(8); + }); + + test('TR', () => { + const dungeon = dungeons.find(d => d.id === 'tr'); + expect(dungeon).not.toBeNull(); + expect(getDungeonBoss(state, dungeon)).toBe('trinexx'); + expect(getDungeonRemainingItems(state, dungeon)).toBe(12); + }); +});