blueshell
Version:
A Behavior Tree implementation in modern Javascript
46 lines • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const RobotActions_1 = require("./test/RobotActions");
const lib_1 = require("../../lib");
const Parent_1 = require("../../lib/nodes/Parent");
describe('Composite', function () {
context('#isParentNode', function () {
it('should detect a parent node', function () {
chai_1.assert.isTrue((0, lib_1.isParentNode)(RobotActions_1.waitAi), 'Latched Selector not reporting it is a parent');
});
it('should not detect a parent node', function () {
chai_1.assert.isFalse((0, lib_1.isParentNode)(RobotActions_1.waitAi.getChildren()[0]), 'Base action reporting it is a parent');
});
});
context('#setEventCounter', function () {
it('should set event counter for parent and all previously visited children', function () {
const state = new RobotActions_1.RobotState(false);
const pStorage = RobotActions_1.waitAi._privateStorage(state);
pStorage.eventCounter = 2;
RobotActions_1.waitAi.getNodeStorage(state).lastEventSeen = 1;
RobotActions_1.waitAi.getChildren()[0].getNodeStorage(state).lastEventSeen = 1;
RobotActions_1.waitAi.getChildren()[1].getNodeStorage(state).lastEventSeen = 0;
(0, Parent_1.setEventCounter)(pStorage, state, RobotActions_1.waitAi);
chai_1.assert.strictEqual(RobotActions_1.waitAi.getNodeStorage(state).lastEventSeen, 2, 'waitAi lastEventSeen not 2');
chai_1.assert.strictEqual(RobotActions_1.waitAi.getChildren()[0].getNodeStorage(state).lastEventSeen, 2, 'waitAi child 0 lastEventSeen not 2');
chai_1.assert.strictEqual(RobotActions_1.waitAi.getChildren()[1].getNodeStorage(state).lastEventSeen, 2, 'waitAi child 1 lastEventSeen not 2');
chai_1.assert.isUndefined(RobotActions_1.waitAi.getChildren()[2].getNodeStorage(state).lastEventSeen, 'waitAi child 2 lastEventSeen not undefined');
});
});
context('#clearEventSeenRecursive', function () {
it('should clear last event seen from the node and all child nodes', function () {
const state = new RobotActions_1.RobotState(false);
const pStorage = RobotActions_1.waitAi._privateStorage(state);
pStorage.eventCounter = 2;
RobotActions_1.waitAi.getChildren()[0].getNodeStorage(state).lastEventSeen = 1;
RobotActions_1.waitAi.getChildren()[1].getNodeStorage(state).lastEventSeen = 0;
(0, Parent_1.clearEventSeenRecursive)(RobotActions_1.waitAi, state);
chai_1.assert.isUndefined(RobotActions_1.waitAi.getNodeStorage(state).lastEventSeen, 'waitAi lastEventSeen not undefined');
chai_1.assert.isUndefined(RobotActions_1.waitAi.getChildren()[0].getNodeStorage(state).lastEventSeen, 'waitAi child 0 lastEventSeen not undefined');
chai_1.assert.isUndefined(RobotActions_1.waitAi.getChildren()[1].getNodeStorage(state).lastEventSeen, 'waitAi child 1 lastEventSeen not undefined');
chai_1.assert.isUndefined(RobotActions_1.waitAi.getChildren()[2].getNodeStorage(state).lastEventSeen, 'waitAi child 2 lastEventSeen not undefined');
});
});
});
//# sourceMappingURL=Parent.test.js.map