flecks/packages/core/test/invoke.js
2024-01-19 03:38:16 -06:00

51 lines
1.2 KiB
JavaScript

import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import {Flecks} from '@flecks/core';
chai.use(chaiAsPromised);
const {expect} = chai;
const testOne = require('./packages/one');
const testTwo = require('./packages/two');
let flecks;
beforeEach(() => {
flecks = Flecks.from({
flecks: {
'@flecks/core/one': testOne,
'@flecks/core/two': testTwo,
},
});
});
it('can invoke', () => {
expect(flecks.invoke('@flecks/core/test/invoke'))
.to.deep.equal({
'@flecks/core/one': 69,
'@flecks/core/two': 420,
});
});
it('can invoke merge', () => {
expect(flecks.invokeMerge('@flecks/core/test/invoke-merge'))
.to.deep.equal({foo: 69, bar: 420});
});
it('can invoke merge async', async () => {
expect(await flecks.invokeMergeAsync('@flecks/core/test/invoke-merge-async'))
.to.deep.equal({foo: 69, bar: 420});
});
it('can enforce uniqueness', () => {
expect(() => flecks.invokeMergeUnique('@flecks/core/test/invoke-merge-unique'))
.to.throw(ReferenceError);
});
it('can enforce uniqueness async', async () => {
expect(flecks.invokeMergeUniqueAsync('@flecks/core/test/invoke-merge-unique-async'))
.to.be.rejectedWith(ReferenceError);
});