avocado/packages/behavior/test/utility.js
2021-01-03 21:43:34 -06:00

56 lines
1.4 KiB
JavaScript

import {Latus} from '@latus/core';
import {expect} from 'chai';
import {
buildInvoke,
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('Utility', () => {
it('makes arrays', async () => {
expect(compile(buildInvoke(
['Utility', 'makeArray'],
[
buildValue(1),
buildValue(2),
buildValue(3),
],
), latus)(context)).to.deep.equal([1, 2, 3]);
});
it('makes objects', async () => {
expect(compile(buildInvoke(
['Utility', 'makeObject'],
[
buildValue('foo'),
buildValue(2),
buildValue('bar'),
buildValue(3),
],
), latus)(context)).to.deep.equal({foo: 2, bar: 3});
});
it('merges', async () => {
expect(compile(buildInvoke(
['Utility', 'merge'],
[
buildValue({foo: 69, bar: 420}),
buildValue({foo: 311, baz: 100}),
],
), latus)(context)).to.deep.equal({foo: 311, bar: 420, baz: 100});
});
});
});