import { buildComputationFromProps } from '/imports/api/engine/computation/buildCreatureComputation.js'; import { assert } from 'chai'; import computeCreatureComputation from '../../computeCreatureComputation.js'; import clean from '../../utility/cleanProp.testFn.js'; export default function(){ const computation = buildComputationFromProps(testProperties); computeCreatureComputation(computation); const prop = id => computation.propsById[id]; assert.equal(prop('atheleticsId').proficiency, 2, 'Inherits proficiency from ability'); assert.equal(prop('atheleticsId').value, 7, 'calculates value correctly'); assert.equal(prop('atheleticsId').advantage, 1, 'Inherits advantage from ability'); assert.equal(prop('strengthSaveId').advantage, undefined, 'Saves don\'t inherit effects'); assert.equal(prop('strengthSaveId').value, 4, 'Saves calculate correctly'); assert.equal(prop('acrobaticsId').value, 1); assert.equal(prop('toolsId').value, 7); } var testProperties = [ clean({ _id: 'strengthId', variableName: 'strength', type: 'attribute', attributeType: 'ability', baseValue: { calculation: '12' }, }), clean({ _id: 'profBonusId', variableName: 'proficiencyBonus', type: 'attribute', attributeType: 'modifier', baseValue: { calculation: '3' }, }), clean({ _id: 'atheleticsId', variableName: 'athletics', type: 'skill', skillType: 'skill', ability: 'strength', }), clean({ _id: 'acrobaticsId', variableName: 'acrobatics', type: 'skill', skillType: 'skill', baseProficiency: 0.49, }), clean({ _id: 'toolsId', variableName: 'tools', type: 'skill', skillType: 'tool', baseProficiency: 0.5, baseValue: { calculation: '5', } }), clean({ _id: 'strengthAdvantageId', type: 'effect', operation: 'advantage', stats: ['strength'], }), clean({ _id: 'strengthProficiencyId', type: 'proficiency', value: 2, stats: ['strength'], }), clean({ _id: 'strengthSaveId', variableName: 'strengthSave', type: 'skill', skillType: 'save', ability: 'strength', baseProficiency: 1, }), ];