장수 목록 기본 정렬 순서를 통일

This commit is contained in:
2026-08-30 12:19:17 +00:00
parent c56610b179
commit dd66da14f4
9 changed files with 110 additions and 44 deletions
@@ -0,0 +1,40 @@
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import { compareGeneralTypeThenName, sortGeneralsByTypeThenName } from '../src/utils/generalOrder.ts';
void describe('general display order', () => {
void it('orders general types before Korean names and ids', () => {
const source = [
{ id: 8, name: '㉥부대장', npcState: 5 },
{ id: 7, name: 'ⓖ의병장', npcState: 4 },
{ id: 6, name: 'ⓜ마초', npcState: 3 },
{ id: 5, name: 'ⓝ조조', npcState: 2 },
{ id: 4, name: 'ⓝ빙의장', npcState: 1 },
{ id: 3, name: '하후돈', npcState: 0 },
{ id: 2, name: '가후', npcState: 0 },
{ id: 1, name: '가후', npcState: 0 },
];
assert.deepEqual(
sortGeneralsByTypeThenName(source).map((general) => general.id),
[1, 2, 3, 4, 5, 6, 7, 8]
);
assert.deepEqual(
source.map((general) => general.id),
[8, 7, 6, 5, 4, 3, 2, 1]
);
});
void it('keeps later special NPC types in their persisted numeric order', () => {
assert.deepEqual(
[
{ id: 9, name: 'ⓞ오랑캐', npcState: 9 },
{ id: 6, name: 'ⓤ중립장', npcState: 6 },
]
.sort(compareGeneralTypeThenName)
.map((general) => general.npcState),
[6, 9]
);
});
});