feat: condition tests
This commit is contained in:
parent
d204ed8ac9
commit
9a6f756014
115
packages/behavior/test/condition.js
Normal file
115
packages/behavior/test/condition.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
import {Latus} from '@latus/core';
|
||||
import {expect} from 'chai';
|
||||
|
||||
import {
|
||||
buildCondition,
|
||||
buildValue,
|
||||
} from '../src/builders';
|
||||
import Context from '../src/context';
|
||||
import compile from '../src/compilers/compile';
|
||||
|
||||
const {name} = require('../package.json');
|
||||
|
||||
describe(name, () => {
|
||||
let latus;
|
||||
let context;
|
||||
beforeEach(async () => {
|
||||
latus = Latus.mock([
|
||||
['@avocado/behavior', `${__dirname}/../src`],
|
||||
]);
|
||||
await Promise.all(latus.invokeFlat('@latus/core/starting'));
|
||||
context = new Context({}, latus);
|
||||
});
|
||||
describe('condition', () => {
|
||||
it('has equality operator', async () => {
|
||||
const condition = compile(buildCondition('is', [
|
||||
buildValue(69),
|
||||
buildValue(69),
|
||||
]), latus);
|
||||
expect(condition(context)).to.be.true;
|
||||
});
|
||||
it('has inequality operator', async () => {
|
||||
const condition = compile(buildCondition('isnt', [
|
||||
buildValue(69),
|
||||
buildValue(68),
|
||||
]), latus);
|
||||
expect(condition(context)).to.be.true;
|
||||
});
|
||||
it('has greater than operator', async () => {
|
||||
const condition = compile(buildCondition('>', [
|
||||
buildValue(69),
|
||||
buildValue(68),
|
||||
]), latus);
|
||||
expect(condition(context)).to.be.true;
|
||||
});
|
||||
it('has greater than or equal operator', async () => {
|
||||
expect(compile(buildCondition('>=', [
|
||||
buildValue(69),
|
||||
buildValue(69),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('>=', [
|
||||
buildValue(69),
|
||||
buildValue(68),
|
||||
]), latus)(context)).to.be.true;
|
||||
});
|
||||
it('has less than operator', async () => {
|
||||
const condition = compile(buildCondition('<', [
|
||||
buildValue(69),
|
||||
buildValue(70),
|
||||
]), latus);
|
||||
expect(condition(context)).to.be.true;
|
||||
});
|
||||
it('has less than or equal operator', async () => {
|
||||
expect(compile(buildCondition('<=', [
|
||||
buildValue(69),
|
||||
buildValue(69),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('<=', [
|
||||
buildValue(69),
|
||||
buildValue(70),
|
||||
]), latus)(context)).to.be.true;
|
||||
});
|
||||
it('has or operator', async () => {
|
||||
expect(compile(buildCondition('or', [
|
||||
buildValue(true),
|
||||
buildValue(false),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('or', [
|
||||
buildValue(true),
|
||||
buildValue(true),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('or', [
|
||||
buildValue(false),
|
||||
buildValue(false),
|
||||
]), latus)(context)).to.be.false;
|
||||
});
|
||||
it('has and operator', async () => {
|
||||
expect(compile(buildCondition('and', [
|
||||
buildValue(true),
|
||||
buildValue(false),
|
||||
]), latus)(context)).to.be.false;
|
||||
expect(compile(buildCondition('and', [
|
||||
buildValue(true),
|
||||
buildValue(true),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('and', [
|
||||
buildValue(false),
|
||||
buildValue(false),
|
||||
]), latus)(context)).to.be.false;
|
||||
});
|
||||
it('has contains operator', async () => {
|
||||
expect(compile(buildCondition('contains', [
|
||||
buildValue([1, 2, 3, 69]),
|
||||
buildValue(69),
|
||||
]), latus)(context)).to.be.true;
|
||||
expect(compile(buildCondition('contains', [
|
||||
buildValue([1, 2, 3]),
|
||||
buildValue(69),
|
||||
]), latus)(context)).to.be.false;
|
||||
expect(compile(buildCondition('contains', [
|
||||
buildValue(69),
|
||||
buildValue(69),
|
||||
]), latus)(context)).to.be.false;
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user