28 lines
979 B
TypeScript
28 lines
979 B
TypeScript
import assert from 'node:assert/strict';
|
|
import { readFile } from 'node:fs/promises';
|
|
import test from 'node:test';
|
|
|
|
type SpecialLevel = {
|
|
description: string;
|
|
effect: string;
|
|
};
|
|
|
|
type CardSummary = {
|
|
cards: Array<{
|
|
name: string;
|
|
details: { special: SpecialLevel[] };
|
|
}>;
|
|
};
|
|
|
|
test('스페셜 설명의 추가 효과가 요약 데이터에서 누락되지 않는다', async () => {
|
|
const path = new URL('../data/cards-summary.json', import.meta.url);
|
|
const summary = JSON.parse(await readFile(path, 'utf8')) as CardSummary;
|
|
const additionalEffectMarkers = ['스킬 발동률', 'GOOD 이상이 PERFECT가 된다', '라이프가'];
|
|
const missing = summary.cards.flatMap((card) => card.details.special.flatMap((level) =>
|
|
additionalEffectMarkers
|
|
.filter((marker) => level.description.includes(marker) && !level.effect.includes(marker))
|
|
.map((marker) => `${card.name} (${marker}): ${level.description}`)));
|
|
|
|
assert.deepEqual(missing, []);
|
|
});
|