refactor: remove legacy store.ts and crafting-slice.ts, complete modular store migration
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s

- Delete store.ts (355 LOC monolithic store, zero imports)
- Delete crafting-slice.ts (379 LOC legacy crafting module)
- Inline createStartingEquipment() into craftingStore.ts
- Remove legacy equipment/inventory fields from GameState
- Remove EquipmentDef from game.ts imports (unused)
- Fix duplicate EquipmentSpellState export in types.ts
- Fix bluePrintId typo in craftingStore.ts
- Update stores/index.ts to import CraftingState/CraftingActions from craftingStore.types
- Update EquipmentTab.test.ts to test store state instead of deleted module
- Clean up stale comments referencing crafting-slice.ts
- Reduce TS errors from 83 to 72 by removing conflicting legacy types
This commit is contained in:
2026-05-20 12:36:00 +02:00
parent 56ac50f465
commit cba42e01ff
17 changed files with 104 additions and 781 deletions
+14 -14
View File
@@ -83,25 +83,25 @@ describe('Equipment type definitions', () => {
// ─── Test: Starting equipment ──────────────────────────────────────────────────
describe('Starting equipment', () => {
it('createStartingEquipment returns valid equippedInstances', async () => {
const { createStartingEquipment } = await import('@/lib/game/crafting-slice');
const { equippedInstances, equipmentInstances } = createStartingEquipment();
it('crafting store initial state has valid equippedInstances', async () => {
const { useCraftingStore } = await import('@/lib/game/stores/craftingStore');
const state = useCraftingStore.getState();
expect(equippedInstances.mainHand).toBeTruthy();
expect(equippedInstances.body).toBeTruthy();
expect(equippedInstances.feet).toBeTruthy();
expect(equippedInstances.offHand).toBeNull();
expect(equippedInstances.head).toBeNull();
expect(equippedInstances.hands).toBeNull();
expect(equippedInstances.accessory1).toBeNull();
expect(equippedInstances.accessory2).toBeNull();
expect(state.equippedInstances.mainHand).toBeTruthy();
expect(state.equippedInstances.body).toBeTruthy();
expect(state.equippedInstances.feet).toBeTruthy();
expect(state.equippedInstances.offHand).toBeNull();
expect(state.equippedInstances.head).toBeNull();
expect(state.equippedInstances.hands).toBeNull();
expect(state.equippedInstances.accessory1).toBeNull();
expect(state.equippedInstances.accessory2).toBeNull();
expect(Object.keys(equipmentInstances).length).toBe(3);
expect(Object.keys(state.equipmentInstances).length).toBe(3);
});
it('starting equipment instances have valid fields', async () => {
const { createStartingEquipment } = await import('@/lib/game/crafting-slice');
const { equipmentInstances } = createStartingEquipment();
const { useCraftingStore } = await import('@/lib/game/stores/craftingStore');
const { equipmentInstances } = useCraftingStore.getState();
for (const instance of Object.values(equipmentInstances)) {
expect(instance.instanceId).toBeTruthy();