nx/packages/storybook/src/builders/build-storybook/build-storybook.impl.spec.ts

56 lines
1.6 KiB
TypeScript

import { join } from 'path';
import * as storybook from '@storybook/core/dist/server/build-static';
import { MockBuilderContext } from '@nrwl/workspace/testing';
import { getMockContext } from '../../utils/testing';
import { run as storybookBuilder } from './build-storybook.impl';
describe('Build storybook', () => {
let context: MockBuilderContext;
beforeEach(async () => {
context = await getMockContext();
});
it('should call the storybook static standalone build', async () => {
const uiFramework = '@storybook/angular';
const outputPath = `${context.workspaceRoot}/dist/storybook`;
const storybookSpy = spyOn(
storybook,
'buildStaticStandalone'
).and.returnValue(Promise.resolve(true));
const result = await storybookBuilder(
{
uiFramework: uiFramework,
outputPath: outputPath,
config: {
pluginPath: join(
__dirname,
`/../../schematics/configuration/root-files/.storybook/addons.js`
),
configPath: join(
__dirname,
`/../../schematics/configuration/root-files/.storybook/webpack.config.js`
),
srcRoot: join(
__dirname,
`/../../schematics/configuration/root-files/.storybook/tsconfig.json`
)
}
},
context
).toPromise();
expect(storybookSpy).toHaveBeenCalled();
expect(
context.logger.includes(`Storybook files availble in ${outputPath}`)
).toBeTruthy();
expect(
context.logger.includes(`ui framework: ${uiFramework}`)
).toBeTruthy();
expect(result.success).toBeTruthy();
});
});