import test from 'node:test'; import assert from 'node:assert/strict'; import { campaignJobAtSection, playableClassesForJob, scaleEnemy, } from './rogue-campaign.mjs'; test('도적 전직 시점: 1섹션 Rogue, 2섹션 2차, 3섹션부터 3차', () => { assert.equal(campaignJobAtSection('thief', 1), 'rogue'); assert.equal(campaignJobAtSection('thief', 2), 'thief'); assert.equal(campaignJobAtSection('thief', 3), 'thiefmaster'); assert.equal(campaignJobAtSection('assassin', 2), 'assassin'); assert.equal(campaignJobAtSection('assassin', 5), 'hermit'); }); test('3차 직업은 자기 계보 카드만 사용', () => { assert.deepEqual(playableClassesForJob('thiefmaster'), ['rogue', 'thief', 'thiefmaster']); assert.deepEqual(playableClassesForJob('hermit'), ['rogue', 'assassin', 'hermit']); }); test('섹션 난이도는 3차 이후 더 빠르게 증가', () => { const enemy = { maxHp: 100, intents: [{ kind: 'Attack', value: 10 }, { kind: 'Debuff', value: 2 }] }; const scaled = scaleEnemy(enemy, 3, () => 0); assert.equal(scaled.maxHp, 114); assert.equal(scaled.intents[0].value, 11); assert.equal(scaled.intents[1].value, 2); });