41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
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]
|
|
);
|
|
});
|
|
});
|