Tore out the old engine, left some wounds
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
import { buildComputationFromProps } from '/imports/api/engine/computation/buildCreatureComputation.js';
|
||||
import { assert } from 'chai';
|
||||
import clean from '../../utility/cleanProp.testFn.js';
|
||||
|
||||
export default function(){
|
||||
let computation = buildComputationFromProps(testProperties);
|
||||
const bySelf = (propId, note) => assertDeactivatedBySelf(computation, propId, note);
|
||||
const byAncestor = (propId, note) => assertDeactivatedByAncestor(computation, propId, note);
|
||||
const active = (propId, note) => assertActive(computation, propId, note);
|
||||
|
||||
// Buffs
|
||||
bySelf('buffNotAppliedId');
|
||||
byAncestor('buffNotAppliedChildId');
|
||||
active('buffAppliedId');
|
||||
active('buffAppliedChildId');
|
||||
|
||||
// Items
|
||||
active('itemUnequippedId', 'Unequipped items should be active');
|
||||
byAncestor('itemUnequippedChildId', 'Children of unequipped items should be inactive');
|
||||
active('itemEquippedId');
|
||||
active('itemEquippedChildId');
|
||||
|
||||
// Spells
|
||||
active('spellPreparedId');
|
||||
active('spellPreparedChildId');
|
||||
active('spellAlwaysPreparedId');
|
||||
active('spellAlwaysPreparedChildId');
|
||||
bySelf('spellUnpreparedId');
|
||||
byAncestor('spellUnpreparedChildId');
|
||||
|
||||
// Notes
|
||||
active('NoteId', 'Notes should be active');
|
||||
byAncestor('NoteChildId', 'children of notes should always be inactive');
|
||||
}
|
||||
|
||||
function assertDeactivatedBySelf(computation, propId, note){
|
||||
const prop = computation.propsById[propId];
|
||||
assert.isTrue(prop.deactivatedBySelf, note);
|
||||
assert.isTrue(prop.inactive, 'The property should be inactive');
|
||||
}
|
||||
|
||||
function assertDeactivatedByAncestor(computation, propId, note){
|
||||
const prop = computation.propsById[propId];
|
||||
assert.isTrue(prop.deactivatedByAncestor, note);
|
||||
assert.isTrue(prop.inactive, 'The property should be inactive');
|
||||
}
|
||||
|
||||
function assertActive(computation, propId, note){
|
||||
const prop = computation.propsById[propId];
|
||||
assert.isNotTrue(prop.inactive, note);
|
||||
assert.isNotTrue(prop.deactivatedBySelf);
|
||||
assert.isNotTrue(prop.deactivatedBySelf);
|
||||
}
|
||||
|
||||
var testProperties = [
|
||||
// Buffs
|
||||
clean({
|
||||
_id: 'buffNotAppliedId',
|
||||
type: 'buff',
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'buffNotAppliedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'buffNotAppliedId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'buffAppliedId',
|
||||
type: 'buff',
|
||||
applied: true,
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'buffAppliedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'buffAppliedId'}],
|
||||
}),
|
||||
// Items
|
||||
clean({
|
||||
_id: 'itemUnequippedId',
|
||||
type: 'item',
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'itemUnequippedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'itemUnequippedId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'itemEquippedId',
|
||||
type: 'item',
|
||||
equipped: true,
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'itemEquippedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'itemEquippedId'}],
|
||||
}),
|
||||
// Spells
|
||||
clean({
|
||||
_id: 'spellPreparedId',
|
||||
type: 'spell',
|
||||
ancestors: [{id: 'charId'}],
|
||||
prepared: true,
|
||||
}),
|
||||
clean({
|
||||
_id: 'spellPreparedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'spellPreparedId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'spellAlwaysPreparedId',
|
||||
type: 'spell',
|
||||
ancestors: [{id: 'charId'}],
|
||||
alwaysPrepared: true,
|
||||
}),
|
||||
clean({
|
||||
_id: 'spellAlwaysPreparedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'spellAlwaysPreparedId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'spellUnpreparedId',
|
||||
type: 'spell',
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'spellUnpreparedChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'spellUnpreparedId'}],
|
||||
}),
|
||||
// Notes
|
||||
clean({
|
||||
_id: 'NoteId',
|
||||
type: 'note',
|
||||
ancestors: [{id: 'charId'}],
|
||||
}),
|
||||
clean({
|
||||
_id: 'NoteChildId',
|
||||
type: 'folder',
|
||||
ancestors: [{id: 'charId'}, {id: 'NoteId'}],
|
||||
}),
|
||||
];
|
||||
Reference in New Issue
Block a user