Skip to content

Commit 75d2fed

Browse files
committed
fix: actually run snapshot
1 parent 995c701 commit 75d2fed

File tree

4 files changed

+38
-284
lines changed

4 files changed

+38
-284
lines changed

packages/react-native/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
"scripts": {
4343
"dev": "npx --yes tsx buildscripts/gendtsdev.ts && tsup --watch",
4444
"prepare": "rm -rf dist/ && tsup",
45-
"test": "jest",
46-
"test:ci": "jest",
45+
"test": "jest && yarn test:generate",
46+
"test:ci": "jest && yarn test:generate",
4747
"test:generate": "node --test scripts/generate.test.js",
4848
"test:generate:update": "node --test --test-update-snapshots scripts/generate.test.js"
4949
},

packages/react-native/scripts/__snapshots__/generate.test.js.snap

Lines changed: 0 additions & 280 deletions
This file was deleted.

packages/react-native/scripts/generate.test.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ const mockFs = {
1515
},
1616
};
1717

18-
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
19-
2018
describe('loader', () => {
2119
beforeEach(() => {
2220
pathMock = undefined;
@@ -26,7 +24,10 @@ describe('loader', () => {
2624
describe('writeRequires', () => {
2725
describe('when there is a story glob', () => {
2826
it('writes the story imports', async (t) => {
27+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
2928
await generate({ configPath: 'scripts/mocks/all-config-files' });
29+
mock.reset();
30+
3031
assert.strictEqual(
3132
pathMock,
3233
path.resolve(__dirname, 'mocks/all-config-files/storybook.requires.ts')
@@ -37,7 +38,10 @@ describe('loader', () => {
3738

3839
describe('when using js', () => {
3940
it('writes the story imports without types', async (t) => {
41+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
4042
await generate({ configPath: 'scripts/mocks/all-config-files', useJs: true });
43+
mock.reset();
44+
4145
assert.strictEqual(
4246
pathMock,
4347
path.resolve(__dirname, 'mocks/all-config-files/storybook.requires.js')
@@ -48,7 +52,10 @@ describe('loader', () => {
4852

4953
describe('when there are different file extensions', () => {
5054
it('writes the story imports', async (t) => {
55+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
5156
await generate({ configPath: 'scripts/mocks/file-extensions' });
57+
mock.reset();
58+
5259
assert.strictEqual(
5360
pathMock,
5461
path.resolve(__dirname, 'mocks/file-extensions/storybook.requires.ts')
@@ -75,16 +82,21 @@ describe('loader', () => {
7582

7683
describe('when there is no story glob or addons', () => {
7784
it('throws an error', async () => {
85+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
7886
await assert.rejects(
7987
async () => await generate({ configPath: 'scripts/mocks/blank-config' }),
8088
Error
8189
);
90+
mock.reset();
8291
});
8392
});
8493

8594
describe('when there is no preview', () => {
8695
it('does not add preview related stuff', async (t) => {
96+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
8797
await generate({ configPath: 'scripts/mocks/no-preview' });
98+
mock.reset();
99+
88100
assert.strictEqual(
89101
pathMock,
90102
path.resolve(__dirname, 'mocks/no-preview/storybook.requires.ts')
@@ -109,7 +121,10 @@ describe('loader', () => {
109121

110122
describe('when there is a configuration object', () => {
111123
it('writes the story imports', async (t) => {
124+
mock.method(require('fs'), 'writeFileSync', mockFs.writeFileSync);
112125
await generate({ configPath: 'scripts/mocks/configuration-objects' });
126+
mock.reset();
127+
113128
assert.strictEqual(
114129
pathMock,
115130
path.resolve(__dirname, 'mocks/configuration-objects/storybook.requires.ts')
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
exports[`loader > writeRequires > when there are different file extensions > writes the story imports 1`] = `
2+
"/* do not change this file, it is auto generated by storybook. */\\nimport { start, updateView, View } from '@storybook/react-native';\\n\\nimport \\"@storybook/addon-ondevice-notes/register\\";\\nimport \\"@storybook/addon-ondevice-controls/register\\";\\nimport \\"@storybook/addon-ondevice-backgrounds/register\\";\\nimport \\"@storybook/addon-ondevice-actions/register\\";\\n\\nconst normalizedStories = [\\n {\\n titlePrefix: \\"\\",\\n directory: \\"./scripts/mocks/file-extensions\\",\\n files: \\"FakeStory.stories.tsx\\",\\n importPathMatcher: /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/,\\n // @ts-ignore\\n req: require.context(\\n './',\\n false,\\n /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/\\n ),\\n }\\n];\\n\\n\\ndeclare global {\\n var view: View;\\n var STORIES: typeof normalizedStories;\\n}\\n\\n\\nconst annotations = [\\n require('./preview'),\\n require(\\"@storybook/react-native/preview\\")\\n];\\n\\nglobal.STORIES = normalizedStories;\\n\\n// @ts-ignore\\nmodule?.hot?.accept?.();\\n\\n\\n\\nif (!global.view) {\\n global.view = start({\\n annotations,\\n storyEntries: normalizedStories,\\n\\n });\\n} else {\\n updateView(global.view, annotations, normalizedStories);\\n}\\n\\nexport const view: View = global.view;\\n"
3+
`;
4+
5+
exports[`loader > writeRequires > when there is a configuration object > writes the story imports 1`] = `
6+
"/* do not change this file, it is auto generated by storybook. */\\nimport { start, updateView, View } from '@storybook/react-native';\\n\\nimport \\"@storybook/addon-ondevice-notes/register\\";\\nimport \\"@storybook/addon-ondevice-controls/register\\";\\nimport \\"@storybook/addon-ondevice-backgrounds/register\\";\\nimport \\"@storybook/addon-ondevice-actions/register\\";\\n\\nconst normalizedStories = [\\n {\\n titlePrefix: \\"ComponentsPrefix\\",\\n directory: \\"./scripts/mocks/configuration-objects/components\\",\\n files: \\"**/*.stories.tsx\\",\\n importPathMatcher: /^\\\\.(?:(?:^|\\\\/|(?:(?:(?!(?:^|\\\\/)\\\\.).)*?)\\\\/)(?!\\\\.)(?=.)[^/]*?\\\\.stories\\\\.tsx)$/,\\n // @ts-ignore\\n req: require.context(\\n './components',\\n true,\\n /^\\\\.(?:(?:^|\\\\/|(?:(?:(?!(?:^|\\\\/)\\\\.).)*?)\\\\/)(?!\\\\.)(?=.)[^/]*?\\\\.stories\\\\.tsx)$/\\n ),\\n }\\n];\\n\\n\\ndeclare global {\\n var view: View;\\n var STORIES: typeof normalizedStories;\\n}\\n\\n\\nconst annotations = [\\n require('./preview'),\\n require(\\"@storybook/react-native/preview\\")\\n];\\n\\nglobal.STORIES = normalizedStories;\\n\\n// @ts-ignore\\nmodule?.hot?.accept?.();\\n\\n\\n\\nif (!global.view) {\\n global.view = start({\\n annotations,\\n storyEntries: normalizedStories,\\n\\n });\\n} else {\\n updateView(global.view, annotations, normalizedStories);\\n}\\n\\nexport const view: View = global.view;\\n"
7+
`;
8+
9+
exports[`loader > writeRequires > when there is a story glob > writes the story imports 1`] = `
10+
"/* do not change this file, it is auto generated by storybook. */\\nimport { start, updateView, View } from '@storybook/react-native';\\n\\nimport \\"@storybook/addon-ondevice-notes/register\\";\\nimport \\"@storybook/addon-ondevice-controls/register\\";\\nimport \\"@storybook/addon-ondevice-backgrounds/register\\";\\nimport \\"@storybook/addon-ondevice-actions/register\\";\\n\\nconst normalizedStories = [\\n {\\n titlePrefix: \\"\\",\\n directory: \\"./scripts/mocks/all-config-files\\",\\n files: \\"FakeStory.stories.tsx\\",\\n importPathMatcher: /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/,\\n // @ts-ignore\\n req: require.context(\\n './',\\n false,\\n /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/\\n ),\\n }\\n];\\n\\n\\ndeclare global {\\n var view: View;\\n var STORIES: typeof normalizedStories;\\n}\\n\\n\\nconst annotations = [\\n require('./preview'),\\n require(\\"@storybook/react-native/preview\\")\\n];\\n\\nglobal.STORIES = normalizedStories;\\n\\n// @ts-ignore\\nmodule?.hot?.accept?.();\\n\\n\\n\\nif (!global.view) {\\n global.view = start({\\n annotations,\\n storyEntries: normalizedStories,\\n\\n });\\n} else {\\n updateView(global.view, annotations, normalizedStories);\\n}\\n\\nexport const view: View = global.view;\\n"
11+
`;
12+
13+
exports[`loader > writeRequires > when there is no preview > does not add preview related stuff 1`] = `
14+
"/* do not change this file, it is auto generated by storybook. */\\nimport { start, updateView, View } from '@storybook/react-native';\\n\\nimport \\"@storybook/addon-ondevice-notes/register\\";\\nimport \\"@storybook/addon-ondevice-controls/register\\";\\nimport \\"@storybook/addon-ondevice-backgrounds/register\\";\\nimport \\"@storybook/addon-ondevice-actions/register\\";\\n\\nconst normalizedStories = [\\n {\\n titlePrefix: \\"\\",\\n directory: \\"./scripts/mocks/no-preview\\",\\n files: \\"FakeStory.stories.tsx\\",\\n importPathMatcher: /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/,\\n // @ts-ignore\\n req: require.context(\\n './',\\n false,\\n /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/\\n ),\\n }\\n];\\n\\n\\ndeclare global {\\n var view: View;\\n var STORIES: typeof normalizedStories;\\n}\\n\\n\\nconst annotations = [\\n require(\\"@storybook/react-native/preview\\")\\n];\\n\\nglobal.STORIES = normalizedStories;\\n\\n// @ts-ignore\\nmodule?.hot?.accept?.();\\n\\n\\n\\nif (!global.view) {\\n global.view = start({\\n annotations,\\n storyEntries: normalizedStories,\\n\\n });\\n} else {\\n updateView(global.view, annotations, normalizedStories);\\n}\\n\\nexport const view: View = global.view;\\n"
15+
`;
16+
17+
exports[`loader > writeRequires > when using js > writes the story imports without types 1`] = `
18+
"/* do not change this file, it is auto generated by storybook. */\\nimport { start, updateView } from '@storybook/react-native';\\n\\nimport \\"@storybook/addon-ondevice-notes/register\\";\\nimport \\"@storybook/addon-ondevice-controls/register\\";\\nimport \\"@storybook/addon-ondevice-backgrounds/register\\";\\nimport \\"@storybook/addon-ondevice-actions/register\\";\\n\\nconst normalizedStories = [\\n {\\n titlePrefix: \\"\\",\\n directory: \\"./scripts/mocks/all-config-files\\",\\n files: \\"FakeStory.stories.tsx\\",\\n importPathMatcher: /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/,\\n \\n req: require.context(\\n './',\\n false,\\n /^\\\\.[\\\\\\\\/](?:FakeStory\\\\.stories\\\\.tsx)$/\\n ),\\n }\\n];\\n\\n\\n\\nconst annotations = [\\n require('./preview'),\\n require(\\"@storybook/react-native/preview\\")\\n];\\n\\nglobal.STORIES = normalizedStories;\\n\\n\\nmodule?.hot?.accept?.();\\n\\n\\n\\nif (!global.view) {\\n global.view = start({\\n annotations,\\n storyEntries: normalizedStories,\\n\\n });\\n} else {\\n updateView(global.view, annotations, normalizedStories);\\n}\\n\\nexport const view = global.view;\\n"
19+
`;

0 commit comments

Comments
 (0)