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 }), []); });