Files
DiceCloud/app/imports/api/engine/computation/computeComputation/tests/computeClasses.testFn.js
2024-02-20 23:21:12 +02:00

58 lines
1.4 KiB
JavaScript

import { buildComputationFromProps } from '/imports/api/engine/computation/buildCreatureComputation';
import { assert } from 'chai';
import computeCreatureComputation from '../../computeCreatureComputation';
import clean from '../../utility/cleanProp.testFn';
import { applyNestedSetProperties } from '/imports/api/parenting/parentingFunctions';
export default async function () {
const computation = buildComputationFromProps(testProperties);
await computeCreatureComputation(computation);
const scope = id => computation.scope[id];
const prop = id => computation.propsById[id];
assert.equal(scope('level').value, 5);
assert.equal(scope('wizard').level, 4);
assert.equal(prop('wizzardId').level, 4);
assert.deepEqual(prop('wizzardId').missingLevels, [3]);
}
var testProperties = [
clean({
_id: 'wizzardId',
type: 'class',
variableName: 'wizard',
classType: 'startingClass',
}),
clean({
_id: 'rangerId',
type: 'class',
variableName: 'ranger',
classType: 'multiClass',
}),
clean({
_id: 'wiz1Id',
type: 'classLevel',
variableName: 'wizard',
level: 1,
}),
clean({
_id: 'wiz2Id',
type: 'classLevel',
variableName: 'wizard',
level: 2,
}),
clean({
_id: 'wiz4Id',
type: 'classLevel',
variableName: 'wizard',
level: 4,
}),
clean({
_id: 'rang1Id',
type: 'classLevel',
variableName: 'ranger',
level: 1,
}),
];
applyNestedSetProperties(testProperties);