Skip to content

Commit 0dd8595

Browse files
Add module mocking stories and update e2e test navigation path
- Introduced a new story for module mocking in `moduleMocking.stories.ts`. - Updated the e2e test to navigate to the correct story path for module mocking. - Enhanced the `addStoriesEntry` function to include a `skipMocking` parameter for better story management.
1 parent 6713380 commit 0dd8595

File tree

3 files changed

+35
-8
lines changed

3 files changed

+35
-8
lines changed
File renamed without changes.

code/e2e-tests/module-mocking.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ test.describe('module-mocking', () => {
5757
test('should assert that utils import is mocked', async ({ page }) => {
5858
const sbPage = new SbPage(page, expect);
5959

60-
await sbPage.navigateToStory('core/module-mocking', 'basic');
60+
await sbPage.navigateToStory('core/moduleMocking', 'basic');
6161

6262
await sbPage.viewAddonPanel('Actions');
6363
const logItem = sbPage.panelContent().filter({

scripts/tasks/sandbox-parts.ts

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -353,15 +353,28 @@ function updateStoriesField(mainConfig: ConfigFile, isJs: boolean) {
353353
}
354354

355355
// Add a stories field entry for the passed symlink
356-
function addStoriesEntry(mainConfig: ConfigFile, path: string, disableDocs: boolean) {
356+
function addStoriesEntry(
357+
mainConfig: ConfigFile,
358+
path: string,
359+
disableDocs: boolean,
360+
skipMocking: boolean
361+
) {
357362
const stories = mainConfig.getFieldValue(['stories']) as string[];
358363

364+
const basePattern = disableDocs
365+
? '**/*.stories.@(js|jsx|mjs|ts|tsx)'
366+
: '**/*.@(mdx|stories.@(js|jsx|mjs|ts|tsx))';
367+
368+
// When skipMocking is true and we're linking core template stories, exclude any stories
369+
// with "mocking" in their file name (not related to docs filtering).
370+
console.log('skipMocking', skipMocking, path);
371+
const files =
372+
skipMocking && path === 'core' ? basePattern.replace('**/*', '**/!(*Mocking)*') : basePattern;
373+
359374
const entry = {
360375
directory: slash(join('../template-stories', path)),
361376
titlePrefix: slash(path),
362-
files: disableDocs
363-
? '**/*.stories.@(js|jsx|mjs|ts|tsx)'
364-
: '**/*.@(mdx|stories.@(js|jsx|mjs|ts|tsx))',
377+
files,
365378
};
366379

367380
mainConfig.setFieldValue(['stories'], [...stories, entry]);
@@ -379,7 +392,14 @@ async function linkPackageStories(
379392
cwd,
380393
linkInDir,
381394
disableDocs,
382-
}: { mainConfig: ConfigFile; cwd: string; linkInDir?: string; disableDocs: boolean },
395+
skipMocking,
396+
}: {
397+
mainConfig: ConfigFile;
398+
cwd: string;
399+
linkInDir?: string;
400+
disableDocs: boolean;
401+
skipMocking: boolean;
402+
},
383403
variant?: string
384404
) {
385405
const storiesFolderName = variant ? getStoriesFolderWithVariant(variant) : 'stories';
@@ -397,7 +417,7 @@ async function linkPackageStories(
397417
await ensureSymlinkOrCopy(source, target);
398418

399419
if (!linkInDir) {
400-
addStoriesEntry(mainConfig, packageDir, disableDocs);
420+
addStoriesEntry(mainConfig, packageDir, disableDocs, skipMocking);
401421
}
402422

403423
// Add `previewAnnotation` entries of the form
@@ -591,6 +611,7 @@ export const addStories: Task['run'] = async (
591611
{ addon: extraAddons, disableDocs }
592612
) => {
593613
logger.log('💃 Adding stories');
614+
const skipMocking = template.modifications?.skipMocking;
594615
const cwd = sandboxDir;
595616
const storiesPath =
596617
(await findFirstPath([join('src', 'stories'), 'stories'], { cwd })) || 'stories';
@@ -629,6 +650,7 @@ export const addStories: Task['run'] = async (
629650
cwd,
630651
linkInDir: resolve(cwd, storiesPath),
631652
disableDocs,
653+
skipMocking,
632654
});
633655

634656
if (
@@ -643,6 +665,7 @@ export const addStories: Task['run'] = async (
643665
cwd,
644666
linkInDir: resolve(cwd, storiesPath),
645667
disableDocs,
668+
skipMocking,
646669
},
647670
sandboxSpecificStoriesFolder
648671
);
@@ -661,6 +684,7 @@ export const addStories: Task['run'] = async (
661684
cwd,
662685
linkInDir: resolve(cwd, storiesPath),
663686
disableDocs,
687+
skipMocking,
664688
});
665689
}
666690

@@ -676,6 +700,7 @@ export const addStories: Task['run'] = async (
676700
cwd,
677701
linkInDir: resolve(cwd, storiesPath),
678702
disableDocs,
703+
skipMocking,
679704
},
680705
sandboxSpecificStoriesFolder
681706
);
@@ -689,12 +714,14 @@ export const addStories: Task['run'] = async (
689714
mainConfig,
690715
cwd,
691716
disableDocs,
717+
skipMocking,
692718
});
693719

694720
await linkPackageStories(await workspacePath('addon test package', '@storybook/addon-vitest'), {
695721
mainConfig,
696722
cwd,
697723
disableDocs,
724+
skipMocking,
698725
});
699726
}
700727

@@ -741,7 +768,7 @@ export const addStories: Task['run'] = async (
741768
if (isCoreRenderer) {
742769
const existingStories = await filterExistsInCodeDir(addonDirs, join('template', 'stories'));
743770
for (const packageDir of existingStories) {
744-
await linkPackageStories(packageDir, { mainConfig, cwd, disableDocs });
771+
await linkPackageStories(packageDir, { mainConfig, cwd, disableDocs, skipMocking });
745772
}
746773

747774
// Add some extra settings (see above for what these do)

0 commit comments

Comments
 (0)