behaviortree
Version:
A JavaScript implementation of Behavior Trees. They are useful for implementing AIs. For Browsers and NodeJS.
29 lines (28 loc) • 1.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-env jest */
const constants_1 = require("../constants");
const AlwaysFailDecorator_1 = __importDefault(require("./AlwaysFailDecorator"));
const Task_1 = __importDefault(require("../Task"));
describe('AlwaysFailDecorator', () => {
const task = new Task_1.default({
run(blackboard) {
return blackboard.result;
}
});
const decoratedTask = new AlwaysFailDecorator_1.default({ node: task });
it('changes SUCCESS to FAILURE', () => {
expect(decoratedTask.run({ result: constants_1.SUCCESS })).toEqual(constants_1.FAILURE);
expect(decoratedTask.run({ result: constants_1.FAILURE })).toEqual(constants_1.FAILURE);
});
it('does not change RUNNING responses', () => {
expect(decoratedTask.run({ result: constants_1.RUNNING })).toEqual(constants_1.RUNNING);
});
it('does not change RUNNING response on Branch nodes', () => {
const result = { total: constants_1.RUNNING, state: [constants_1.FAILURE, constants_1.RUNNING] };
expect(decoratedTask.run({ result })).toEqual(result);
});
});