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'; let latus; let context; beforeEach(async () => { latus = Latus.mock({ '@avocado/behavior': require('../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}); }); });