Files
core2026/app/game-api/test/nationTraitInfo.test.ts
T

44 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { loadTraitNames, mapGeneralList, type GeneralListRow } from '../src/router/nation/shared.js';
describe('nation trait information', () => {
it('returns ref-compatible names and descriptions for nation and general traits', async () => {
const row: GeneralListRow = {
id: 1,
name: '특성장수',
npcState: 0,
nationId: 1,
cityId: 1,
troopId: 0,
officerLevel: 1,
leadership: 80,
strength: 70,
intel: 60,
experience: 0,
dedication: 0,
injury: 0,
gold: 1000,
rice: 1000,
crew: 1000,
personalCode: 'che_패권',
specialCode: 'che_상재',
special2Code: 'che_기병',
meta: {},
penalty: {},
};
const [general] = await mapGeneralList([row], new Map([[1, '도시']]), new Map());
expect(general?.personality).toEqual({
key: 'che_패권',
name: '패권',
info: '훈련 +5, 징·모병 비용 +20%',
});
expect(general?.specialDomestic?.info).toContain('상업 투자');
expect(general?.specialWar?.info).toContain('공격 시 대미지 +20%');
const nation = (await loadTraitNames(['che_유가'], 'nation')).get('che_유가');
expect(nation).toEqual({ name: '유가', info: '농상↑ 민심↑ 쌀수입↓' });
});
});