31 lines
1.5 KiB
JavaScript
31 lines
1.5 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { structuralRisks } from './card-efficiency.mjs';
|
|
|
|
test('0코스트 에너지 생성 카드를 위험으로 분류', () => {
|
|
const risks = structuralRisks({ cost: 0, kind: 'Skill', gainEnergy: 1 });
|
|
assert.ok(risks.some((risk) => risk.includes('에너지를 생성')));
|
|
});
|
|
|
|
test('재사용 가능한 영구 능력치 스킬을 위험으로 분류', () => {
|
|
const risks = structuralRisks({ cost: 1, kind: 'Skill', strength: 1, dex: 1 });
|
|
assert.ok(risks.some((risk) => risk.includes('영구 능력치')));
|
|
});
|
|
|
|
test('소멸하거나 파워인 능력치 카드는 허용', () => {
|
|
assert.deepEqual(structuralRisks({ cost: 1, kind: 'Skill', strength: 1, exhaust: true }), []);
|
|
assert.deepEqual(structuralRisks({ cost: 1, kind: 'Power', dex: 1 }), []);
|
|
assert.deepEqual(structuralRisks({ cost: 0, kind: 'Skill', dex: 2, endTurnDexLoss: 2 }), []);
|
|
});
|
|
|
|
test('저비용 2배 피해 증폭을 위험으로 분류', () => {
|
|
const risks = structuralRisks({ cost: 1, kind: 'Power', attackDamageVsWeakMultiplier: 2 });
|
|
assert.ok(risks.some((risk) => risk.includes('2배')));
|
|
});
|
|
|
|
test('0코스트 누적 피해 전체 방어 전환을 위험으로 분류', () => {
|
|
const risks = structuralRisks({ cost: 0, kind: 'Skill', blockPerDamageDealtThisTurn: 1 });
|
|
assert.ok(risks.some((risk) => risk.includes('누적 피해')));
|
|
assert.deepEqual(structuralRisks({ cost: 0, kind: 'Skill', blockPerDamageDealtThisTurn: 0.5 }), []);
|
|
});
|