From 35049dcdefea0e9946b7ed8d63c202e9437fde0f Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Fri, 19 Feb 2021 18:05:42 -0500 Subject: [PATCH] fix(storybook): emit a value from storybook executor so that e2e tests work (#4845) --- .../src/executors/storybook/storybook.impl.spec.ts | 11 +++++------ .../src/executors/storybook/storybook.impl.ts | 6 ++++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/storybook/src/executors/storybook/storybook.impl.spec.ts b/packages/storybook/src/executors/storybook/storybook.impl.spec.ts index ee981c7737..37b60ea739 100644 --- a/packages/storybook/src/executors/storybook/storybook.impl.spec.ts +++ b/packages/storybook/src/executors/storybook/storybook.impl.spec.ts @@ -44,11 +44,10 @@ describe('@nrwl/storybook:storybook', () => { }; }); - it('should provide options to storybook', (done) => { - storybookExecutor(options, context); - setTimeout(() => { - expect(buildDevStandalone).toHaveBeenCalled(); - done(); - }, 0); + it('should provide options to storybook', async () => { + const iterator = storybookExecutor(options, context); + const { value } = await iterator.next(); + expect(value).toEqual({ success: true }); + expect(buildDevStandalone).toHaveBeenCalled(); }); }); diff --git a/packages/storybook/src/executors/storybook/storybook.impl.ts b/packages/storybook/src/executors/storybook/storybook.impl.ts index 061f24959d..6d2c52176d 100644 --- a/packages/storybook/src/executors/storybook/storybook.impl.ts +++ b/packages/storybook/src/executors/storybook/storybook.impl.ts @@ -33,7 +33,7 @@ try { require('dotenv').config(); } catch (e) {} -export default async function storybookExecutor( +export default async function* storybookExecutor( options: StorybookExecutorOptions, context: ExecutorContext ) { @@ -43,8 +43,10 @@ export default async function storybookExecutor( const option = storybookOptionMapper(options, frameworkOptions, context); await runInstance(option); + yield { success: true }; + // This Promise intentionally never resolves, leaving the process running - return new Promise<{ success: boolean }>(() => {}); + await new Promise<{ success: boolean }>(() => {}); } function runInstance(options: StorybookExecutorOptions) {