44 lines
1.5 KiB
TypeScript
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: '농상↑ 민심↑ 쌀수입↓' });
|
|
});
|
|
});
|