61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
import { buildComputationFromProps } from '/imports/api/engine/computation/buildCreatureComputation';
|
|
import { assert } from 'chai';
|
|
import computeCreatureComputation from '../../computeCreatureComputation';
|
|
import clean from '../../utility/cleanProp.testFn';
|
|
|
|
export default function () {
|
|
const computation = buildComputationFromProps(testProperties);
|
|
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',
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
clean({
|
|
_id: 'rangerId',
|
|
type: 'class',
|
|
variableName: 'ranger',
|
|
classType: 'multiClass',
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
clean({
|
|
_id: 'wiz1Id',
|
|
type: 'classLevel',
|
|
variableName: 'wizard',
|
|
level: 1,
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
clean({
|
|
_id: 'wiz2Id',
|
|
type: 'classLevel',
|
|
variableName: 'wizard',
|
|
level: 2,
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
clean({
|
|
_id: 'wiz4Id',
|
|
type: 'classLevel',
|
|
variableName: 'wizard',
|
|
level: 4,
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
clean({
|
|
_id: 'rang1Id',
|
|
type: 'classLevel',
|
|
variableName: 'ranger',
|
|
level: 1,
|
|
ancestors: [{ id: 'charId' }],
|
|
}),
|
|
];
|