import { describe, it } from 'mocha'; import { expect } from 'chai'; import { rollup } from 'rollup'; import nodeResolve from '@rollup/plugin-node-resolve'; import YAML from 'yamljs'; import { packageBuilder, manifestMerger, inputFile } from '../src/index'; import setupFixture from './helpers/setup-fixture'; describe('test', () => { setupFixture('test-package'); it('can bundle based on an index', async () => { const bundle = await rollup({ input: inputFile, plugins: [ packageBuilder({ entry: 'src/index.js' }), manifestMerger({ output: 'manifest.yml', appManifest: 'test-app-manifest.yml' }), nodeResolve() ] }); const { output } = await bundle.generate({ format: 'es' }); const javascript = output.find(({ fileName }) => fileName === inputFile); const yaml = output.find(({ fileName }) => fileName === 'manifest.yml'); const html = output.find(({ fileName }) => fileName === 'index.html'); // @ts-ignore expect(javascript.code).to.contain('test-package'); // @ts-ignore expect(javascript.code).to.contain('src/random-file'); // @ts-ignore expect(javascript.code).to.contain('@movable/studio-framework'); // @ts-ignore expect(html.source).to.contain(`
`); // @ts-ignore const manifest = YAML.parse(yaml.source); expect(manifest).to.deep.eq({ name: 'Test App Manifest', authors: ['Foo'], height: 400, width: 600, package_manifests: [ { authors: ['Test Developer'], name: 'test-package' } ], studio_options: { framework_version: '2.34.0', package_dependencies: [{ name: '@movable/studio-framework', version: '2.34.0' }] } }); }); });