merge: 최신 main의 발령 작업을 대상 지도 브랜치에 통합
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
|
||||
import { commandCityOptions } from '../src/components/command/commandArgumentOptions.ts';
|
||||
import type { CommandMapData, CommandOption } from '../src/components/command/types.ts';
|
||||
|
||||
const cities: CommandOption[] = [
|
||||
{ value: 20, label: '적국 도시' },
|
||||
{ value: 30, label: '아국 도시 둘' },
|
||||
{ value: 40, label: '공백지' },
|
||||
{ value: 10, label: '아국 도시 하나' },
|
||||
];
|
||||
const mapData: CommandMapData = {
|
||||
year: 200,
|
||||
month: 1,
|
||||
startYear: 180,
|
||||
cityList: [
|
||||
[10, 8, 0, 1, 1, 1],
|
||||
[20, 7, 0, 2, 2, 1],
|
||||
[30, 6, 0, 1, 3, 1],
|
||||
[40, 5, 0, 0, 4, 1],
|
||||
],
|
||||
nationList: [
|
||||
[1, '아국', '#008000', 10],
|
||||
[2, '적국', '#800000', 20],
|
||||
],
|
||||
myCity: 10,
|
||||
myNation: 1,
|
||||
};
|
||||
|
||||
void test('발령은 아국 도시를 먼저 두고 적국과 공백지를 원래 순서로 보존한다', () => {
|
||||
const sorted = commandCityOptions('che_발령', cities, mapData);
|
||||
|
||||
assert.deepEqual(
|
||||
sorted.map((option) => option.value),
|
||||
[30, 10, 20, 40]
|
||||
);
|
||||
assert.deepEqual(
|
||||
cities.map((option) => option.value),
|
||||
[20, 30, 40, 10],
|
||||
'공용 입력 option은 변경하지 않는다'
|
||||
);
|
||||
});
|
||||
|
||||
void test('다른 도시 대상 명령의 순서는 바꾸지 않는다', () => {
|
||||
assert.deepEqual(
|
||||
commandCityOptions('che_출병', cities, mapData).map((option) => option.value),
|
||||
[20, 30, 40, 10]
|
||||
);
|
||||
});
|
||||
|
||||
void test('지도 국가 정보가 아직 없으면 발령의 기존 option 순서를 유지한다', () => {
|
||||
assert.deepEqual(
|
||||
commandCityOptions('che_발령', cities, null).map((option) => option.value),
|
||||
[20, 30, 40, 10]
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user