flecks/packages/core/test/invoke.js
cha0s c3910ba5f0 flow:
dox, hook registration, ensureUniqueReduction, middleware, ...
2022-08-11 00:11:51 -05: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('./one');
const testTwo = require('./two');
let flecks;
beforeEach(() => {
flecks = new Flecks({
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);
});