fix(spire): reset currentAction to meditate on spire exit; fix(crafting): wire enchanting state hooks to EnchantmentDesigner/Preparer/Applier
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m53s

This commit is contained in:
2026-05-10 21:28:46 +02:00
parent cad72fe88c
commit ae0bf3e38d
4 changed files with 88 additions and 15 deletions
@@ -0,0 +1,64 @@
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import { useCombatStore } from '../combatStore';
import { useUIStore } from '../uiStore';
describe('Spire Exit Action — Bug 1 Fix', () => {
beforeEach(() => {
// Reset combat store to a known state
useCombatStore.setState({
currentFloor: 5,
floorHP: 100,
floorMaxHP: 100,
maxFloorReached: 5,
activeSpell: 'manaBolt',
currentAction: 'climb' as const,
castProgress: 0,
spireMode: true,
climbDirection: 'down' as const,
isDescending: true,
});
});
afterEach(() => {
useCombatStore.setState({
currentFloor: 1,
floorHP: 100,
floorMaxHP: 100,
maxFloorReached: 1,
activeSpell: 'manaBolt',
currentAction: 'meditate',
castProgress: 0,
spireMode: false,
climbDirection: null,
isDescending: false,
});
useUIStore.setState({ logs: [] });
});
it('should reset currentAction to "meditate" when exitSpireMode is called', () => {
// Pre-condition: action is "climb" while in spire
expect(useCombatStore.getState().currentAction).toBe('climb');
expect(useCombatStore.getState().spireMode).toBe(true);
// Exit spire mode
useCombatStore.getState().exitSpireMode();
// Post-condition: currentAction must be "meditate"
expect(useCombatStore.getState().currentAction).toBe('meditate');
});
it('should set spireMode to false when exitSpireMode is called', () => {
useCombatStore.getState().exitSpireMode();
expect(useCombatStore.getState().spireMode).toBe(false);
});
it('should clear climbDirection when exitSpireMode is called', () => {
useCombatStore.getState().exitSpireMode();
expect(useCombatStore.getState().climbDirection).toBeNull();
});
it('should clear isDescending when exitSpireMode is called', () => {
useCombatStore.getState().exitSpireMode();
expect(useCombatStore.getState().isDescending).toBe(false);
});
});
+1 -1
View File
@@ -253,7 +253,7 @@ export const useCombatStore = create<CombatState>()(
},
exitSpireMode: () => {
set({ spireMode: false, climbDirection: null, isDescending: false });
set({ spireMode: false, currentAction: 'meditate', climbDirection: null, isDescending: false });
},
startClimbUp: () => set({ climbDirection: 'up', currentAction: 'climb' }),