Files
HolodoriCalc/src/lib/engine/card-adapter.test.ts
T

53 lines
1.9 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { toOptimizerCard, type OptimizerSourceCard } from './card-adapter.ts';
const source: OptimizerSourceCard = {
id: 'card',
name: '카드',
details: {
active: [
{ level: 1, coolTimeSeconds: 10, durationSeconds: 1, effect: '스코어가 10% UP' },
{ level: 2, coolTimeSeconds: 8, durationSeconds: 2, effect: '스코어가 20% UP' }
],
special: [
{ level: 1, coolTimeSeconds: null, durationSeconds: 1, effect: '스코어가 30% UP' },
{ level: 2, coolTimeSeconds: null, durationSeconds: 2, effect: '스코어가 40% UP' }
]
}
};
test('액티브는 1개화, 스페셜은 3개화부터 2레벨을 적용한다', () => {
const base = toOptimizerCard(source, 0);
const activeAwakened = toOptimizerCard(source, 1);
const specialAwakened = toOptimizerCard(source, 3);
assert.equal(base.active.scoreUpPercent, 10);
assert.equal(base.special.scoreUpPercent, 30);
assert.equal(activeAwakened.active.scoreUpPercent, 20);
assert.equal(activeAwakened.special.scoreUpPercent, 30);
assert.equal(specialAwakened.special.scoreUpPercent, 40);
});
test('4개화 패시브의 타입별 스코어 서포트 대상과 수치를 변환한다', () => {
const passiveSource: OptimizerSourceCard = {
...source,
type: '퓨어',
generation: 'Promise',
details: {
...source.details,
passive: [
{ level: 1, description: '[attribute=pure]퓨어 타입[/attribute] 2명의 스코어 서포트 효과 8%' },
{ level: 2, description: '[attribute=pure]퓨어 타입[/attribute] 2명의 스코어 서포트 효과 11%' }
]
}
};
assert.deepEqual(toOptimizerCard(passiveSource, 4, undefined, [{ type: '퓨어', generation: 'Promise' }]).passiveScoreSupportEffects, [{
percent: 11,
target: 'group',
targetGroup: '퓨어 타입',
targetCount: 2
}]);
});