From 7caa34452fb24b7657377d97bd731b09e819a660 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 28 Nov 2025 19:29:53 -0800 Subject: [PATCH] fix: Phase 4 - fix test fixture type errors (42 -> 38 errors) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed all test fixture mock data to match actual type definitions across 4 test files. Resolved 9 distinct type errors by correcting mock object structures. Files modified: - entity.adapter.test.ts: Fixed Character mock to use nested hp/atk objects - grid.adapter.test.ts: Fixed GridWeapon/GridCharacter/GridSummon mocks - Added proper entity objects (mockWeapon, mockCharacter, mockSummon) - Fixed transcendenceStage -> transcendenceStep - Removed invalid partyId/weaponId/characterId/summonId properties - party.adapter.test.ts: Fixed Party mock - Changed visibility from 'public' string to 0 number - Removed invalid skills array from Job object - Added complete RaidGroup with all required properties - user.adapter.test.ts: Fixed User/Party mocks - Created separate mockUser (User type) vs mockUserInfo (UserInfo type) - Fixed role type mismatch (number vs string) - Added required arrays (weapons, characters, summons) to Party objects Result: 42 β†’ 38 errors (-4) πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../adapters/__tests__/entity.adapter.test.ts | 43 ++++++------- .../adapters/__tests__/grid.adapter.test.ts | 60 ++++++++++++++++--- .../adapters/__tests__/party.adapter.test.ts | 24 +++++--- .../adapters/__tests__/user.adapter.test.ts | 22 +++++-- 4 files changed, 106 insertions(+), 43 deletions(-) diff --git a/src/lib/api/adapters/__tests__/entity.adapter.test.ts b/src/lib/api/adapters/__tests__/entity.adapter.test.ts index 87637b55..0342b224 100644 --- a/src/lib/api/adapters/__tests__/entity.adapter.test.ts +++ b/src/lib/api/adapters/__tests__/entity.adapter.test.ts @@ -53,28 +53,29 @@ describe('EntityAdapter', () => { }, rarity: 5, element: 2, - proficiency1: 1, - proficiency2: 2, - series: 1, - minHp: 150, - maxHp: 750, - minAttack: 250, - maxAttack: 1250, - flbHp: 900, - flbAttack: 1500, - ulbHp: 1050, - ulbAttack: 1750, - transcendenceHp: 1200, - transcendenceAttack: 2000, + maxLevel: 100, + uncap: { + flb: true, + ulb: true + }, special: false, - seasonalId: 'summer-1', - awakenings: [ - { - id: 'awk-2', - name: { en: 'HP Boost' }, - level: 2 - } - ] + recruits: null, + gender: 0, + race: { + race1: 1, + race2: 2 + }, + proficiency: [1, 2], + hp: { + minHp: 150, + maxHp: 750, + maxHpFlb: 900 + }, + atk: { + minAtk: 250, + maxAtk: 1250, + maxAtkFlb: 1500 + } } const mockSummon: Summon = { diff --git a/src/lib/api/adapters/__tests__/grid.adapter.test.ts b/src/lib/api/adapters/__tests__/grid.adapter.test.ts index 76c2ab5f..54c2c992 100644 --- a/src/lib/api/adapters/__tests__/grid.adapter.test.ts +++ b/src/lib/api/adapters/__tests__/grid.adapter.test.ts @@ -8,38 +8,80 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest' import { GridAdapter } from '../grid.adapter' import type { GridWeapon, GridCharacter, GridSummon } from '../grid.adapter' +import type { Weapon, Character, Summon } from '$lib/types/api/entities' describe('GridAdapter', () => { let adapter: GridAdapter let originalFetch: typeof global.fetch + const mockWeapon: Weapon = { + id: 'weapon-1', + granblueId: '1040001', + name: { en: 'Test Weapon', ja: 'γƒ†γ‚Ήγƒˆζ­¦ε™¨' }, + rarity: 5, + element: 1, + maxLevel: 150, + series: 1, + proficiency: 1, + uncap: { flb: true, ulb: true, transcendence: false }, + hp: { minHp: 100, maxHp: 500, maxHpFlb: 600 }, + atk: { minAtk: 200, maxAtk: 1000, maxAtkFlb: 1200 } + } + + const mockCharacter: Character = { + id: 'char-1', + granblueId: '3040001', + name: { en: 'Test Character', ja: 'γƒ†γ‚Ήγƒˆγ‚­γƒ£γƒ©' }, + rarity: 5, + element: 1, + maxLevel: 100, + uncap: { flb: true, ulb: true }, + special: false, + recruits: null, + gender: 0, + race: { race1: 1, race2: 0 }, + proficiency: [1], + hp: { minHp: 150, maxHp: 750, maxHpFlb: 900 }, + atk: { minAtk: 250, maxAtk: 1250, maxAtkFlb: 1500 } + } + + const mockSummon: Summon = { + id: 'summon-1', + granblueId: '2040001', + name: { en: 'Test Summon', ja: 'γƒ†γ‚Ήγƒˆε¬ε–šηŸ³' }, + rarity: 5, + element: 1, + maxLevel: 150, + series: 1, + uncap: { flb: true, ulb: true, transcendence: false }, + hp: { minHp: 100, maxHp: 500, maxHpFlb: 600 }, + atk: { minAtk: 200, maxAtk: 1000, maxAtkFlb: 1200 } + } + const mockGridWeapon: GridWeapon = { id: 'gw-1', - partyId: 'party-1', - weaponId: 'weapon-1', position: 1, mainhand: true, uncapLevel: 5, - transcendenceStage: 0 + transcendenceStep: 0, + weapon: mockWeapon } const mockGridCharacter: GridCharacter = { id: 'gc-1', - partyId: 'party-1', - characterId: 'char-1', position: 1, uncapLevel: 5, - transcendenceStage: 1 + transcendenceStep: 1, + character: mockCharacter } const mockGridSummon: GridSummon = { id: 'gs-1', - partyId: 'party-1', - summonId: 'summon-1', position: 1, quickSummon: true, uncapLevel: 5, - transcendenceStage: 2 + transcendenceStep: 2, + summon: mockSummon } beforeEach(() => { diff --git a/src/lib/api/adapters/__tests__/party.adapter.test.ts b/src/lib/api/adapters/__tests__/party.adapter.test.ts index 14f66246..a7c7bb8e 100644 --- a/src/lib/api/adapters/__tests__/party.adapter.test.ts +++ b/src/lib/api/adapters/__tests__/party.adapter.test.ts @@ -18,28 +18,34 @@ describe('PartyAdapter', () => { shortcode: 'ABC123', name: 'Test Party', description: 'Test description', - visibility: 'public', + visibility: 0, user: { id: 'user-1', username: 'testuser' }, job: { id: 'job-1', + granblueId: 'job-1', name: { en: 'Warrior', ja: 'ウォγƒͺγ‚’γƒΌ' }, - skills: [ - { - id: 'skill-1', - name: { en: 'Rage', ja: 'レむジ' }, - slot: 1 - } - ] + row: 1, + order: 1, + proficiency: [1, 2] }, raid: { id: 'raid-1', + slug: 'proto-bahamut', name: { en: 'Proto Bahamut', ja: 'γƒ—γƒ­γƒˆγƒγƒγƒ γƒΌγƒˆ' }, + level: 50, + element: 0, group: { id: 'group-1', - name: { en: 'Tier 1', ja: 'ティを1' } + name: { en: 'Tier 1', ja: 'ティを1' }, + section: 'omega', + order: 1, + difficulty: 1, + hl: false, + extra: false, + guidebooks: true } }, weapons: [], diff --git a/src/lib/api/adapters/__tests__/user.adapter.test.ts b/src/lib/api/adapters/__tests__/user.adapter.test.ts index 0fab1894..0a5e62d6 100644 --- a/src/lib/api/adapters/__tests__/user.adapter.test.ts +++ b/src/lib/api/adapters/__tests__/user.adapter.test.ts @@ -2,6 +2,7 @@ import { describe, it, expect, beforeEach, vi } from 'vitest' import { UserAdapter } from '../user.adapter' import type { UserInfo, UserProfile } from '../user.adapter' import type { Party } from '$lib/types/api/party' +import type { User } from '$lib/types/api/entities' describe('UserAdapter', () => { let adapter: UserAdapter @@ -21,6 +22,16 @@ describe('UserAdapter', () => { } } + const mockUser: User = { + id: 'user-1', + username: 'testuser', + role: 'user', + avatar: { + picture: 'avatar.jpg', + element: 'fire' + } + } + const mockUserProfile: UserProfile = { ...mockUserInfo, parties: [ @@ -28,8 +39,11 @@ describe('UserAdapter', () => { id: 'party-1', shortcode: 'abc123', name: 'Test Party', - user: mockUserInfo - } as Party + user: mockUser, + weapons: [], + characters: [], + summons: [] + } ] } @@ -37,13 +51,13 @@ describe('UserAdapter', () => { id: 'party-1', shortcode: 'abc123', name: 'Fire Team', - user: mockUserInfo, + user: mockUser, visibility: 0, element: 1, characters: [], weapons: [], summons: [] - } as Party + } beforeEach(() => { mockFetch = vi.fn()