fix(storybook): do not infer a test-storybook task if @storybook/test-runner is not installed (#23034)

This commit is contained in:
Leosvel Pérez Espinosa 2024-04-26 15:18:26 +02:00 committed by GitHub
parent 521d417a16
commit 9077ae8abb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 16 deletions

View File

@ -21,6 +21,7 @@ describe('@nx/storybook/plugin', () => {
workspaceRoot: tempFs.tempDir, workspaceRoot: tempFs.tempDir,
configFiles: [], configFiles: [],
}; };
tempFs.createFileSync('package.json', JSON.stringify({ name: 'repo' }));
tempFs.createFileSync( tempFs.createFileSync(
'my-app/project.json', 'my-app/project.json',
JSON.stringify({ name: 'my-app' }) JSON.stringify({ name: 'my-app' })
@ -89,11 +90,6 @@ describe('@nx/storybook/plugin', () => {
).toMatchObject({ ).toMatchObject({
command: 'storybook dev', command: 'storybook dev',
}); });
expect(
nodes?.['projects']?.['my-app']?.targets?.['test-storybook']
).toMatchObject({
command: 'test-storybook',
});
}); });
it('should create angular nodes', async () => { it('should create angular nodes', async () => {
@ -158,11 +154,6 @@ describe('@nx/storybook/plugin', () => {
compodoc: false, compodoc: false,
}, },
}); });
expect(
nodes?.['projects']?.['my-ng-app']?.targets?.['test-storybook']
).toMatchObject({
command: 'test-storybook',
});
}); });
it('should support main.js', async () => { it('should support main.js', async () => {
@ -217,11 +208,6 @@ describe('@nx/storybook/plugin', () => {
).toMatchObject({ ).toMatchObject({
command: 'storybook dev', command: 'storybook dev',
}); });
expect(
nodes?.['projects']?.['my-react-lib']?.targets?.['test-storybook']
).toMatchObject({
command: 'test-storybook',
});
}); });
function mockStorybookMainConfig( function mockStorybookMainConfig(

View File

@ -148,7 +148,9 @@ async function buildStorybookTargets(
configFilePath configFilePath
); );
targets[options.testStorybookTargetName] = testTarget(projectRoot); if (isStorybookTestRunnerInstalled()) {
targets[options.testStorybookTargetName] = testTarget(projectRoot);
}
targets[options.staticStorybookTargetName] = serveStaticTarget( targets[options.staticStorybookTargetName] = serveStaticTarget(
options, options,
@ -324,3 +326,12 @@ function buildProjectName(
} }
return name; return name;
} }
function isStorybookTestRunnerInstalled(): boolean {
try {
require.resolve('@storybook/test-runner');
return true;
} catch (e) {
return false;
}
}