2022-02-16 11:20:17 +08:00

57 lines
1.5 KiB
TypeScript

import CodeGen from '../../../../src';
import { ResultDir } from '@alilc/lowcode-types';
describe('public/publisher/disk/disk', () => {
// standalone 模式下没有 disk publisher
if (process.env.TEST_TARGET === 'standalone') {
it('should ignore', () => {
expect(true).toBe(true);
});
return;
}
it('should works', async () => {
const disk = CodeGen.publishers.disk({
outputPath: 'demo-output',
projectSlug: 'example-project',
});
const demoProject: ResultDir = {
name: 'demo',
dirs: [],
files: [
{
name: 'package',
ext: 'json',
content: '{ "name": "demo", "version": "1.0.0" }',
},
],
};
expect(disk.getOutputPath()).toMatchInlineSnapshot(`"demo-output"`);
disk.setProject(demoProject);
expect(disk.getProject()).toBeTruthy();
expect(disk.getOutputPath()).toMatchInlineSnapshot(`"demo-output"`);
expect(disk.setOutputPath('output')).toBe(undefined);
expect(disk.getOutputPath()).toMatchInlineSnapshot(`"output"`);
const publishRes = await disk.publish({
project: demoProject,
});
expect(publishRes.success).toBeTruthy();
expect(publishRes.payload).toBeTruthy();
});
it('should throws Error when project is missing', async () => {
const disk = CodeGen.publishers.disk({});
expect(disk.publish()).rejects.toBeTruthy();
expect(() => {
return disk.getProject();
}).toThrowError(/MissingProject/);
});
});