UNPKG

behaviortree

Version:

A JavaScript implementation of Behavior Trees. They are useful for implementing AIs. For Browsers and NodeJS.

35 lines (34 loc) 1.44 kB
"use strict"; 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 InvertDecorator_1 = __importDefault(require("./InvertDecorator")); const Task_1 = __importDefault(require("../Task")); describe('InvertDecorator', () => { const task = new Task_1.default({ run(blackboard) { return blackboard.result; } }); let invertedTask; beforeEach(() => { invertedTask = new InvertDecorator_1.default({ node: task }); }); it('has a nodeType', () => { expect(invertedTask.nodeType).toEqual('InvertDecorator'); }); it('inverts SUCCESS and FAILURES', () => { expect(invertedTask.run({ result: constants_1.SUCCESS })).toEqual(constants_1.FAILURE); expect(invertedTask.run({ result: constants_1.FAILURE })).toEqual(constants_1.SUCCESS); }); it('does not change RUNNING responses', () => { expect(invertedTask.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(invertedTask.run({ result })).toEqual(result); }); });