From fdc636faaa7c269d91637e006b4907e19e72fbbd Mon Sep 17 00:00:00 2001 From: n8n-gitea Date: Mon, 25 May 2026 20:44:09 +0200 Subject: [PATCH] =?UTF-8?q?test:=20add=20combat-actions=20and=20UI=20compo?= =?UTF-8?q?nent=20tests=20=E2=80=94=2040=20new=20tests=20covering=20proces?= =?UTF-8?q?sCombatTick,=20Card,=20Button,=20Badge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/circular-deps.txt | 2 +- docs/dependency-graph.json | 20 +- docs/project-structure.txt | 2 + scorecard.png | Bin 85739 -> 85911 bytes src/components/ui/ui-components.test.tsx | 186 ++++++++++++++ src/lib/game/__tests__/combat-actions.test.ts | 236 ++++++++++++++++++ vitest.config.ts | 2 +- 7 files changed, 430 insertions(+), 18 deletions(-) create mode 100644 src/components/ui/ui-components.test.tsx create mode 100644 src/lib/game/__tests__/combat-actions.test.ts diff --git a/docs/circular-deps.txt b/docs/circular-deps.txt index 75018d4..bef01ce 100644 --- a/docs/circular-deps.txt +++ b/docs/circular-deps.txt @@ -1,5 +1,5 @@ # Circular Dependencies -Generated: 2026-05-25T16:26:37.693Z +Generated: 2026-05-25T18:18:45.184Z Found: 6 circular chain(s) — these MUST be fixed before modifying involved files. 1. Processed 135 files (1.6s) (2 warnings) diff --git a/docs/dependency-graph.json b/docs/dependency-graph.json index f65cc2e..ba6af3b 100644 --- a/docs/dependency-graph.json +++ b/docs/dependency-graph.json @@ -1,6 +1,6 @@ { "_meta": { - "generated": "2026-05-25T16:26:35.898Z", + "generated": "2026-05-25T18:18:43.369Z", "description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.", "usage": "To find what a file affects, search for its path in the VALUES. To find what a file depends on, look at its KEY entry." }, @@ -143,7 +143,6 @@ "types.ts" ], "crafting-equipment.ts": [ - "crafting-utils.ts", "data/crafting-recipes.ts", "data/equipment/index.ts", "types.ts", @@ -168,9 +167,7 @@ "data/attunements.ts": [ "types.ts" ], - "data/crafting-recipes.ts": [ - "data/equipment/types.ts" - ], + "data/crafting-recipes.ts": [], "data/disciplines/base.ts": [ "types/disciplines.ts" ], @@ -226,8 +223,7 @@ "data/equipment/index.ts" ], "data/enchantments/defense-effects.ts": [ - "data/enchantment-types.ts", - "data/equipment/index.ts" + "data/enchantment-types.ts" ], "data/enchantments/elemental-effects.ts": [ "data/enchantment-types.ts", @@ -439,8 +435,7 @@ "effects/discipline-effects.ts", "stores/combat-state.types.ts", "types.ts", - "utils/index.ts", - "utils/result.ts" + "utils/index.ts" ], "stores/combat-state.types.ts": [ "types.ts" @@ -448,7 +443,6 @@ "stores/combatStore.ts": [ "stores/combat-actions.ts", "stores/combat-state.types.ts", - "stores/prestigeStore.ts", "types.ts", "utils/activity-log.ts", "utils/index.ts", @@ -471,7 +465,6 @@ "stores/craftingStore.types.ts", "stores/manaStore.ts", "stores/uiStore.ts", - "types.ts", "types/equipmentSlot.ts", "utils/result.ts", "utils/safe-persist.ts" @@ -499,7 +492,6 @@ "stores/gameActions.ts": [ "effects/discipline-effects.ts", "stores/combatStore.ts", - "stores/discipline-slice.ts", "stores/gameStore.ts", "stores/manaStore.ts", "stores/prestigeStore.ts", @@ -510,20 +502,16 @@ "constants.ts", "effects.ts", "effects/discipline-effects.ts", - "stores/combatStore.ts", "stores/craftingStore.ts", - "stores/discipline-slice.ts", "stores/gameStore.ts", "stores/manaStore.ts", "stores/prestigeStore.ts", - "stores/uiStore.ts", "utils/index.ts" ], "stores/gameLoopActions.ts": [ "constants.ts", "effects/discipline-effects.ts", "stores/combatStore.ts", - "stores/discipline-slice.ts", "stores/gameStore.ts", "stores/manaStore.ts", "stores/prestigeStore.ts", diff --git a/docs/project-structure.txt b/docs/project-structure.txt index 2c4660a..a10a047 100644 --- a/docs/project-structure.txt +++ b/docs/project-structure.txt @@ -181,6 +181,7 @@ Mana-Loop/ │ │ │ ├── toggle.tsx │ │ │ ├── tooltip-info.tsx │ │ │ ├── tooltip.tsx +│ │ │ ├── ui-components.test.tsx │ │ │ └── value-display.tsx │ │ └── ErrorBoundary.tsx │ ├── hooks/ @@ -193,6 +194,7 @@ Mana-Loop/ │ │ │ ├── achievements.test.ts │ │ │ ├── activity-log.test.ts │ │ │ ├── bug-fixes.test.ts +│ │ │ ├── combat-actions.test.ts │ │ │ ├── combat-utils.test.ts │ │ │ ├── computed-stats.test.ts │ │ │ ├── crafting-utils-basic.test.ts diff --git a/scorecard.png b/scorecard.png index 60ca011b885cc1d2a1699b83d8b3f1ed59a58d56..afa39e933fb7a3fce709af993de03aa64becd840 100644 GIT binary patch delta 48114 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 delta 47918 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 diff --git a/src/components/ui/ui-components.test.tsx b/src/components/ui/ui-components.test.tsx new file mode 100644 index 0000000..81d9412 --- /dev/null +++ b/src/components/ui/ui-components.test.tsx @@ -0,0 +1,186 @@ +import { describe, it, expect } from 'vitest'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { + Card, + CardHeader, + CardTitle, + CardDescription, + CardContent, + CardFooter, +} from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Badge } from '@/components/ui/badge'; + +// ═══════════════════════════════════════════════════════════════════════════════ +// UI COMPONENT TESTS — Card +// ═══════════════════════════════════════════════════════════════════════════════ + +describe('Card', () => { + it('should render with children', () => { + render(Hello World); + expect(screen.getByTestId('card')).toHaveTextContent('Hello World'); + }); + + it('should accept custom className', () => { + render(Test); + expect(screen.getByTestId('card')).toHaveClass('custom-class'); + }); + + it('should have data-slot attribute', () => { + render(Test); + expect(screen.getByTestId('card')).toHaveAttribute('data-slot', 'card'); + }); + + it('should render CardHeader with children', () => { + render( + + Header Text + , + ); + expect(screen.getByTestId('header')).toHaveTextContent('Header Text'); + }); + + it('should render CardTitle', () => { + render( + + + My Title + + , + ); + expect(screen.getByTestId('title')).toHaveTextContent('My Title'); + }); + + it('should render CardDescription', () => { + render( + + + Description text + + , + ); + expect(screen.getByTestId('desc')).toHaveTextContent('Description text'); + }); + + it('should render CardContent', () => { + render( + + Content here + , + ); + expect(screen.getByTestId('content')).toHaveTextContent('Content here'); + }); + + it('should render CardFooter', () => { + render( + + Footer text + , + ); + expect(screen.getByTestId('footer')).toHaveTextContent('Footer text'); + }); +}); + +// ═══════════════════════════════════════════════════════════════════════════════ +// UI COMPONENT TESTS — Button +// ═══════════════════════════════════════════════════════════════════════════════ + +describe('Button', () => { + it('should render with children text', () => { + render(); + expect(screen.getByTestId('btn')).toHaveTextContent('Click Me'); + }); + + it('should have button role', () => { + render(); + expect(screen.getByTestId('btn').tagName).toBe('BUTTON'); + }); + + it('should apply variant classes', () => { + render(); + expect(screen.getByTestId('btn')).toHaveClass('bg-destructive'); + }); + + it('should apply size classes', () => { + render(); + expect(screen.getByTestId('btn')).toHaveClass('h-8'); + }); + + it('should apply custom className', () => { + render(); + expect(screen.getByTestId('btn')).toHaveClass('custom'); + }); + + it('should render as child component when asChild is true', () => { + render( + , + ); + const el = screen.getByTestId('btn'); + expect(el.tagName).toBe('A'); + expect(el).toHaveAttribute('href', '/test'); + }); + + it('should have data-slot attribute', () => { + render(); + expect(screen.getByTestId('btn')).toHaveAttribute('data-slot', 'button'); + }); +}); + +// ═══════════════════════════════════════════════════════════════════════════════ +// UI COMPONENT TESTS — Badge +// ═══════════════════════════════════════════════════════════════════════════════ + +describe('Badge', () => { + it('should render with children text', () => { + render(New); + expect(screen.getByTestId('badge')).toHaveTextContent('New'); + }); + + it('should render as span by default', () => { + render(Test); + expect(screen.getByTestId('badge').tagName).toBe('SPAN'); + }); + + it('should apply default variant classes', () => { + render(Default); + expect(screen.getByTestId('badge')).toHaveClass('bg-primary'); + }); + + it('should apply destructive variant', () => { + render(Error); + expect(screen.getByTestId('badge')).toHaveClass('bg-destructive'); + }); + + it('should apply outline variant', () => { + render(Outline); + expect(screen.getByTestId('badge')).toHaveClass('text-foreground'); + }); + + it('should apply secondary variant', () => { + render(Secondary); + expect(screen.getByTestId('badge')).toHaveClass('bg-secondary'); + }); + + it('should apply custom className', () => { + render(Custom); + expect(screen.getByTestId('badge')).toHaveClass('custom-badge'); + }); + + it('should accept asChild prop', () => { + render( + + Link Badge + , + ); + const el = screen.getByTestId('badge'); + expect(el.tagName).toBe('A'); + }); + + it('should have data-slot attribute', () => { + render(Test); + expect(screen.getByTestId('badge')).toHaveAttribute('data-slot', 'badge'); + }); +}); diff --git a/src/lib/game/__tests__/combat-actions.test.ts b/src/lib/game/__tests__/combat-actions.test.ts new file mode 100644 index 0000000..aa6a931 --- /dev/null +++ b/src/lib/game/__tests__/combat-actions.test.ts @@ -0,0 +1,236 @@ +import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { processCombatTick, makeInitialSpells } from '../stores/combat-actions'; +import { useCombatStore, makeInitialSpells as makeStoreInitialSpells } from '../stores/combatStore'; +import { useManaStore, makeInitialElements } from '../stores/manaStore'; +import { useGameStore } from '../stores/gameStore'; +import { usePrestigeStore } from '../stores/prestigeStore'; +import { useUIStore } from '../stores/uiStore'; +import { useDisciplineStore } from '../stores/discipline-slice'; +import { getFloorMaxHP } from '../utils'; +import type { CombatTickResult } from '../stores/combat-actions'; + +// ─── Helpers ────────────────────────────────────────────────────────────────── + +function resetStores() { + useUIStore.setState({ paused: false, gameOver: false, victory: false, logs: [] }); + useGameStore.setState({ day: 1, hour: 0, incursionStrength: 0, containmentWards: 0, initialized: true }); + useManaStore.setState({ rawMana: 1000, meditateTicks: 0, totalManaGathered: 0, elements: makeInitialElements(500, {}) }); + useCombatStore.setState({ + currentFloor: 1, + floorHP: getFloorMaxHP(1), + floorMaxHP: getFloorMaxHP(1), + maxFloorReached: 1, + activeSpell: 'manaBolt', + currentAction: 'climb', + castProgress: 0, + spireMode: false, + currentRoom: { roomType: 'combat', enemies: [] }, + clearedFloors: {}, + climbDirection: null, + isDescending: false, + golemancy: { enabledGolems: [], summonedGolems: [], lastSummonFloor: 0 }, + equipmentSpellStates: [], + comboHitCount: 0, + floorHitCount: 0, + spells: makeStoreInitialSpells(), + activityLog: [], + achievements: { unlocked: [], progress: {} }, + totalSpellsCast: 0, + totalDamageDealt: 0, + totalCraftsCompleted: 0, + }); + usePrestigeStore.setState({ + loopCount: 0, insight: 0, totalInsight: 0, loopInsight: 0, + prestigeUpgrades: {}, pactSlots: 1, defeatedGuardians: [], + signedPacts: [], signedPactDetails: {}, + pactRitualFloor: null, pactRitualProgress: 0, + }); + useDisciplineStore.setState({ disciplines: {}, activeIds: [], concurrentLimit: 1, totalXP: 0, processedPerks: [] }); +} + +function runCombatTick(rawMana: number, elements: Record): CombatTickResult { + return processCombatTick( + () => useCombatStore.getState(), + (partial) => useCombatStore.setState(partial), + rawMana, + elements, + 1000, // maxMana + 1, // attackSpeedMult + vi.fn(), // onFloorCleared + (dmg) => ({ rawMana, elements, modifiedDamage: dmg }), // onDamageDealt (no modifiers) + [], // signedPacts + ); +} + +// ═══════════════════════════════════════════════════════════════════════════════ +// COMBAT ACTIONS — processCombatTick +// ═══════════════════════════════════════════════════════════════════════════════ + +describe('processCombatTick', () => { + beforeEach(resetStores); + + describe('basic mechanics', () => { + it('should return default result when currentAction is not climb', () => { + useCombatStore.setState({ currentAction: 'meditate' }); + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.currentFloor).toBe(1); + expect(result.floorHP).toBe(getFloorMaxHP(1)); + }); + + it('should return default result when spell is not found', () => { + useCombatStore.setState({ activeSpell: 'nonexistentSpell' }); + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.currentFloor).toBe(1); + }); + + it('should progress cast bar on each tick', () => { + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.castProgress).toBeGreaterThan(0); + }); + + it('should reduce floor HP when cast completes', () => { + // Set cast progress close to 1 so next cast completes + useCombatStore.setState({ castProgress: 0.99 }); + const elements = makeInitialElements(500, {}); + const initialHP = useCombatStore.getState().floorHP; + const result = runCombatTick(1000, elements); + // Either HP decreased or floor advanced (if HP reached 0) + expect(result.floorHP).toBeLessThanOrEqual(initialHP); + }); + }); + + describe('floor advancement', () => { + it('should advance floor when HP reaches 0', () => { + // Set floor HP very low so it's cleared in one cast + useCombatStore.setState({ floorHP: 1, castProgress: 0.99 }); + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.currentFloor).toBe(2); + expect(result.floorHP).toBe(getFloorMaxHP(2)); + }); + + it('should update maxFloorReached when advancing', () => { + useCombatStore.setState({ floorHP: 1, castProgress: 0.99, maxFloorReached: 5 }); + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.maxFloorReached).toBeGreaterThanOrEqual(5); + }); + + it('should not advance beyond floor 100', () => { + useCombatStore.setState({ currentFloor: 100, floorHP: 1, castProgress: 0.99 }); + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.currentFloor).toBeLessThanOrEqual(100); + }); + }); + + describe('mana cost', () => { + it('should deduct raw mana when spell costs raw mana', () => { + const elements = makeInitialElements(500, {}); + const startMana = 1000; + const result = runCombatTick(startMana, elements); + // manaBolt costs raw mana, so after casting, rawMana should decrease + expect(result.rawMana).toBeLessThanOrEqual(startMana); + }); + + it('should not cast when insufficient mana', () => { + const elements = makeInitialElements(500, {}); + const state = useCombatStore.getState(); + // With 0 mana and 0 progress, no cast should complete + const result = processCombatTick( + () => state, + () => {}, + 0, // no mana + elements, + 1000, + 1, + vi.fn(), + (dmg) => ({ rawMana: 0, elements, modifiedDamage: dmg }), + [], + ); + expect(result.rawMana).toBe(0); + }); + }); + + describe('equipment spell states', () => { + it('should initialize empty equipmentSpellStates', () => { + const elements = makeInitialElements(500, {}); + const result = runCombatTick(1000, elements); + expect(result.equipmentSpellStates).toBeDefined(); + }); + + it('should not error with empty equipment spell states', () => { + useCombatStore.setState({ equipmentSpellStates: [] }); + const elements = makeInitialElements(500, {}); + expect(() => runCombatTick(1000, elements)).not.toThrow(); + }); + }); + + describe('error handling', () => { + it('should return safe defaults when spell def is missing (early return path)', () => { + // When the spell definition is not found, processCombatTick returns + // a default result without crashing — this exercises the early return + // path that acts as a safety net. + useCombatStore.setState({ activeSpell: 'totallyInvalidSpell' }); + const elements = makeInitialElements(500, {}); + const result = processCombatTick( + () => useCombatStore.getState(), + () => {}, + 1000, + elements, + 1000, + 1, + vi.fn(), + (dmg) => ({ rawMana: 1000, elements, modifiedDamage: dmg }), + [], + ); + expect(result).toBeDefined(); + expect(result.rawMana).toBe(1000); + expect(result.logMessages).toBeDefined(); + }); + + it('should not throw when onDamageDealt callback throws', () => { + // The try/catch in processCombatTick should catch errors from callbacks + // and return safe defaults instead of crashing + const elements = makeInitialElements(500, {}); + useCombatStore.setState({ castProgress: 0.99 }); + expect(() => { + processCombatTick( + () => useCombatStore.getState(), + () => {}, + 1000, + elements, + 1000, + 1, + vi.fn(), + (_dmg) => { throw new Error('damage callback error'); }, + [], + ); + }).not.toThrow(); + }); + }); + + describe('helper: makeInitialSpells', () => { + it('should create manaBolt as default spell', () => { + const spells = makeInitialSpells(); + expect(spells.manaBolt).toBeDefined(); + expect(spells.manaBolt.learned).toBe(true); + expect(spells.manaBolt.level).toBe(1); + }); + + it('should keep additional spells when specified', () => { + const spells = makeInitialSpells(['fireball']); + expect(spells.manaBolt).toBeDefined(); + expect(spells.fireball).toBeDefined(); + expect(spells.fireball.learned).toBe(true); + }); + + it('should not duplicate manaBolt when included in keep list', () => { + const spells = makeInitialSpells(['manaBolt']); + expect(Object.keys(spells).length).toBe(1); + }); + }); +}); diff --git a/vitest.config.ts b/vitest.config.ts index 1d26efe..cdccbe6 100755 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ environment: 'jsdom', globals: true, setupFiles: ['./src/test/setup.ts'], - include: ['src/**/*.{test,spec}.ts'], + include: ['src/**/*.{test,spec}.{ts,tsx}'], coverage: { reporter: ['text', 'json'], exclude: [