fix: add test coverage for crafting-utils, pact-utils, and activity-log

This commit is contained in:
2026-05-22 14:39:27 +02:00
parent 49f8de01ca
commit ca1709006f
21 changed files with 1963 additions and 25 deletions
@@ -0,0 +1,101 @@
import { describe, it, expect } from 'vitest';
import {
getAvailableCapacity,
designFitsInEquipment,
getEquipmentCategory,
getEquipmentType,
} from '../crafting-utils';
function makeInstance(overrides = {}): any {
return {
instanceId: 'test_1',
typeId: 'oakStaff',
name: 'Test Staff',
enchantments: [],
totalCapacity: 100,
usedCapacity: 0,
...overrides,
};
}
function makeDesign(overrides = {}): any {
return {
id: 'design_1',
name: 'Test Design',
effects: [{ effectId: 'fireDamage', stacks: 2 }],
totalCapacityUsed: 20,
...overrides,
};
}
describe('getAvailableCapacity', () => {
it('should return full capacity when nothing is used', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 0 });
expect(getAvailableCapacity(instance)).toBe(100);
});
it('should return remaining capacity', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 30 });
expect(getAvailableCapacity(instance)).toBe(70);
});
it('should return 0 when fully used', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 100 });
expect(getAvailableCapacity(instance)).toBe(0);
});
it('should handle zero capacity', () => {
const instance = makeInstance({ totalCapacity: 0, usedCapacity: 0 });
expect(getAvailableCapacity(instance)).toBe(0);
});
});
describe('designFitsInEquipment', () => {
it('should return true when design fits', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 20 });
const design = makeDesign({ totalCapacityUsed: 30 });
expect(designFitsInEquipment(design, instance)).toBe(true);
});
it('should return false when design does not fit', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 80 });
const design = makeDesign({ totalCapacityUsed: 30 });
expect(designFitsInEquipment(design, instance)).toBe(false);
});
it('should return true when design fits exactly', () => {
const instance = makeInstance({ totalCapacity: 100, usedCapacity: 70 });
const design = makeDesign({ totalCapacityUsed: 30 });
expect(designFitsInEquipment(design, instance)).toBe(true);
});
});
describe('getEquipmentCategory', () => {
it('should return the category for a known equipment type', () => {
const cat = getEquipmentCategory('oakStaff');
expect(cat).toBe('caster');
});
it('should return null for an unknown equipment type', () => {
const cat = getEquipmentCategory('nonexistent_item');
expect(cat).toBeNull();
});
it('should return accessory category for ring', () => {
const cat = getEquipmentCategory('silverRing');
expect(cat).toBe('accessory');
});
});
describe('getEquipmentType', () => {
it('should return the type definition for a known equipment type', () => {
const type = getEquipmentType('oakStaff');
expect(type).not.toBeNull();
expect(type!.category).toBe('caster');
});
it('should return null for an unknown equipment type', () => {
const type = getEquipmentType('nonexistent_item');
expect(type).toBeNull();
});
});