@wmfs/tymly
Version:
A framework for building and sharing workflows in Node.js
69 lines (59 loc) • 1.74 kB
JavaScript
/* eslint-env mocha */
const chai = require('chai')
chai.use(require('dirty-chai'))
const expect = chai.expect
const path = require('path')
const loadDir = require('../lib/boot/load/tymly-loader/load-dir')
describe('loadDir loader test', () => {
const testDir = path.resolve(
__dirname,
'./fixtures/loader'
)
it('load a plain blueprint dir', () => {
const components = { }
const tymlyRefs = { }
loadDir(
path.resolve(testDir, 'cats-blueprint'),
components,
tymlyRefs,
{
quiet: true,
expectModule: false,
expectedMetaFilename: 'blueprint.json',
mandatoryMetaKeys: ['name', 'version', 'namespace']
}
)
expect(components.categories).to.not.be.null()
expect(components.registryKeys).to.not.be.null()
expect(components.stateMachines).to.not.be.null()
expect(components.templateRoles).to.not.be.null()
expect(tymlyRefs).to.eql({})
})
it('load a blueprint with refs', () => {
const components = { }
const tymlyRefs = { }
loadDir(
path.resolve(testDir, 'cats-blueprint-with-ref'),
components,
tymlyRefs,
{
quiet: true,
expectModule: false,
expectedMetaFilename: 'blueprint.json',
mandatoryMetaKeys: ['name', 'version', 'namespace']
}
)
expect(components.categories).to.not.be.null()
expect(components.registryKeys).to.not.be.null()
expect(components.stateMachines).to.not.be.null()
expect(components.templateRoles).to.not.be.null()
expect(tymlyRefs).to.eql({
stateMachines: {
tymlyTest_aDayInTheLife: [{
path: '$.States.Sitting',
ref: 'task://sitting'
}]
}
})
})
})