From 00b8ec2b2d05e89a67bcc7c6e3068bbba23d56ba Mon Sep 17 00:00:00 2001
From: Hypnosphi
Date: Tue, 22 Oct 2019 01:10:12 +0200
Subject: [PATCH] Automate codemod tests creation and update
---
lib/codemod/package.json | 3 +-
... add-component-parameters.output.snapshot} | 28 +++---
...{basic.output.js => basic.output.snapshot} | 8 +-
...s.output.js => decorators.output.snapshot} | 8 +-
...put.js => exclude-stories.output.snapshot} | 8 +-
...s.output.js => parameters.output.snapshot} | 8 +-
...tput.js => story-function.output.snapshot} | 8 +-
...ut.js => story-parameters.output.snapshot} | 8 +-
.../mdx-to-csf/basic.output.js | 31 -------
.../mdx-to-csf/basic.output.snapshot | 35 +++++++
.../mdx-to-csf/decorators.output.js | 14 ---
.../mdx-to-csf/decorators.output.snapshot | 18 ++++
...put.js => exclude-stories.output.snapshot} | 14 ++-
...s.output.js => parameters.output.snapshot} | 10 +-
.../mdx-to-csf/plaintext.output.js | 3 -
.../mdx-to-csf/plaintext.output.snapshot | 7 ++
...tput.js => story-function.output.snapshot} | 8 +-
.../mdx-to-csf/story-parameters.output.js | 26 ------
.../story-parameters.output.snapshot | 30 ++++++
...s.output.js => story-refs.output.snapshot} | 8 +-
.../move-buildin-addons/default.output.js | 4 -
.../default.output.snapshot | 8 ++
.../with-no-change.output.js | 3 -
.../with-no-change.output.snapshot | 7 ++
.../storiesof-to-csf/basic.output.js | 41 ---------
.../storiesof-to-csf/basic.output.snapshot | 45 +++++++++
...on.output.js => collision.output.snapshot} | 8 +-
.../storiesof-to-csf/const.output.js | 9 --
.../storiesof-to-csf/const.output.snapshot | 13 +++
.../storiesof-to-csf/decorators.output.js | 14 ---
.../decorators.output.snapshot | 18 ++++
.../storiesof-to-csf/default.output.js | 13 ---
.../storiesof-to-csf/default.output.snapshot | 17 ++++
.../storiesof-to-csf/digit.output.js | 5 -
.../storiesof-to-csf/digit.output.snapshot | 9 ++
.../storiesof-to-csf/exports.output.js | 12 ---
.../storiesof-to-csf/exports.output.snapshot | 16 ++++
.../storiesof-to-csf/module.output.js | 12 ---
.../storiesof-to-csf/module.output.snapshot | 16 ++++
.../storiesof-to-csf/multi.output.js | 35 -------
.../storiesof-to-csf/multi.output.snapshot | 39 ++++++++
.../storiesof-to-csf/parameters.output.js | 19 ----
.../parameters.output.snapshot | 23 +++++
...ut.js => story-decorators.output.snapshot} | 14 ++-
.../story-parameters.output.js | 28 ------
.../story-parameters.output.snapshot | 32 +++++++
...t.js => update-addon-info.output.snapshot} | 92 ++++++++++---------
... update-organisation-name.output.snapshot} | 8 +-
.../add-component-parameters.test.js | 8 --
.../transforms/__tests__/csf-to-mdx.test.js | 14 ---
.../transforms/__tests__/mdx-to-csf.test.js | 16 ----
.../__tests__/move-buildin-addons.js | 4 -
.../__tests__/storiesof-to-csf.test.js | 14 ---
.../transforms/__tests__/transforms.tests.js | 32 +++++++
.../__tests__/update-addon-info.test.js | 3 -
.../update-organisation-name.test.js | 8 --
yarn.lock | 39 ++++++++
57 files changed, 555 insertions(+), 426 deletions(-)
rename lib/codemod/src/transforms/__testfixtures__/add-component-parameters/{add-component-parameters.output.js => add-component-parameters.output.snapshot} (60%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{basic.output.js => basic.output.snapshot} (69%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{decorators.output.js => decorators.output.snapshot} (55%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{exclude-stories.output.js => exclude-stories.output.snapshot} (70%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{parameters.output.js => parameters.output.snapshot} (60%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{story-function.output.js => story-function.output.snapshot} (61%)
rename lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/{story-parameters.output.js => story-parameters.output.snapshot} (60%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/{exclude-stories.output.js => exclude-stories.output.snapshot} (51%)
rename lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/{parameters.output.js => parameters.output.snapshot} (51%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/{story-function.output.js => story-function.output.snapshot} (62%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/{story-refs.output.js => story-refs.output.snapshot} (76%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/{collision.output.js => collision.output.snapshot} (74%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.snapshot
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/{story-decorators.output.js => story-decorators.output.snapshot} (50%)
delete mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.js
create mode 100644 lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.snapshot
rename lib/codemod/src/transforms/__testfixtures__/update-addon-info/{update-addon-info.output.js => update-addon-info.output.snapshot} (67%)
rename lib/codemod/src/transforms/__testfixtures__/update-organisation-name/{update-organisation-name.output.js => update-organisation-name.output.snapshot} (71%)
delete mode 100644 lib/codemod/src/transforms/__tests__/add-component-parameters.test.js
delete mode 100644 lib/codemod/src/transforms/__tests__/csf-to-mdx.test.js
delete mode 100644 lib/codemod/src/transforms/__tests__/mdx-to-csf.test.js
delete mode 100644 lib/codemod/src/transforms/__tests__/move-buildin-addons.js
delete mode 100644 lib/codemod/src/transforms/__tests__/storiesof-to-csf.test.js
create mode 100644 lib/codemod/src/transforms/__tests__/transforms.tests.js
delete mode 100644 lib/codemod/src/transforms/__tests__/update-addon-info.test.js
delete mode 100644 lib/codemod/src/transforms/__tests__/update-organisation-name.test.js
diff --git a/lib/codemod/package.json b/lib/codemod/package.json
index 49bd9ca30ab..53867a699e6 100644
--- a/lib/codemod/package.json
+++ b/lib/codemod/package.json
@@ -27,13 +27,14 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
+ "@hypnosphi/jscodeshift": "^0.6.4",
"@mdx-js/mdx": "^1.0.0",
"@storybook/node-logger": "5.3.0-alpha.23",
"@storybook/router": "5.3.0-alpha.23",
"core-js": "^3.0.1",
"cross-spawn": "^7.0.0",
"globby": "^10.0.1",
- "jscodeshift": "^0.6.3",
+ "jest-specific-snapshot": "^2.0.0",
"lodash": "^4.17.15",
"prettier": "^1.16.4",
"recast": "^0.16.1",
diff --git a/lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.snapshot
similarity index 60%
rename from lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.js
rename to lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.snapshot
index c196d5e03a1..5391358b111 100644
--- a/lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/add-component-parameters/add-component-parameters.output.snapshot
@@ -1,4 +1,7 @@
-/* eslint-disable */
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`add-component-parameters transforms correctly using "add-component-parameters.input.js" data 1`] = `
+"/* eslint-disable */
import React from 'react';
import Button from './Button';
@@ -7,15 +10,15 @@ import { action } from '@storybook/addon-actions';
storiesOf('Button', module).addParameters({
component: Button
-}).add('basic', () => );
+}).add('basic', () => );
storiesOf('Button').addParameters({
component: Button
-}).add('no module', () => );
+}).add('no module', () => );
storiesOf('Button', module).addParameters({
component: Button
-}).add('with story parameters', () => , {
+}).add('with story parameters', () => , {
header: false,
inline: true,
});
@@ -24,41 +27,42 @@ storiesOf('Button', module).addParameters({
component: Button
})
.addParameters({ foo: 1 })
- .add('with kind parameters', () => );
+ .add('with kind parameters', () => );
storiesOf('Button', module).addParameters({
component: Button
})
.addParameters({ component: Button })
- .add('with existing component parameters', () => );
+ .add('with existing component parameters', () => );
storiesOf('Button', module).addParameters({
component: Button
}).add('complex story', () => (
-
+
));
storiesOf('Root|Some/Button', module).addParameters({
component: Button
-}).add('with path', () => );
+}).add('with path', () => );
storiesOf('Some.Button', module).addParameters({
component: Button
-}).add('with dot-path', () => );
+}).add('with dot-path', () => );
storiesOf('Some.Button', module).addParameters({
component: Button
})
.addDecorator(withKnobs)
- .add('with decorator', () => );
+ .add('with decorator', () => );
-// This isn't a valid story, but it tests the `import { comp } from ...` case
+// This isn't a valid story, but it tests the \`import { comp } from ...\` case
storiesOf('action', module).addParameters({
component: action
}).add('non-default component export', () => );
// This shouldn't get modified since the story name doesn't match
-storiesOf('something', module).add('non-matching story', () => );
+storiesOf('something', module).add('non-matching story', () => );"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.snapshot
similarity index 69%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.snapshot
index 816062e09b9..ca833e112ac 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/basic.output.snapshot
@@ -1,4 +1,7 @@
-import Button from './Button';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "basic.input.js" data 1`] = `
+"import Button from './Button';
import { action } from '@storybook/addon-actions';
import { Meta, Story } from '@storybook/addon-docs/blocks';
@@ -11,4 +14,5 @@ import { Meta, Story } from '@storybook/addon-docs/blocks';
-
\ No newline at end of file
+ "
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.snapshot
similarity index 55%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.snapshot
index 2c9bc768f8f..fde0c3de9d6 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/decorators.output.snapshot
@@ -1,8 +1,12 @@
-import Button from './Button';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "decorators.input.js" data 1`] = `
+"import Button from './Button';
import { Meta, Story } from '@storybook/addon-docs/blocks';
{storyFn}
]} />
-
\ No newline at end of file
+ "
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.snapshot
similarity index 70%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.snapshot
index 5c6d14a3856..d5f889768bc 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/exclude-stories.output.snapshot
@@ -1,4 +1,7 @@
-import Button from './Button';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "exclude-stories.input.js" data 1`] = `
+"import Button from './Button';
import { action } from '@storybook/addon-actions';
import { Meta, Story } from '@storybook/addon-docs/blocks';
@@ -15,4 +18,5 @@ export const rowData = {
-
\ No newline at end of file
+ "
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.snapshot
similarity index 60%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.snapshot
index 335493de3d4..84f049d2cad 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/parameters.output.snapshot
@@ -1,4 +1,7 @@
-import Button from './Button';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "parameters.input.js" data 1`] = `
+"import Button from './Button';
import { storiesOf } from '@storybook/react';
import { Meta, Story } from '@storybook/addon-docs/blocks';
@@ -10,4 +13,5 @@ import { Meta, Story } from '@storybook/addon-docs/blocks';
bar: 2,
}} />
-
\ No newline at end of file
+ "
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.snapshot
similarity index 61%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.snapshot
index cec42638fa7..d12ec28e2ec 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-function.output.snapshot
@@ -1,4 +1,7 @@
-import { document } from 'global';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "story-function.input.js" data 1`] = `
+"import { document } from 'global';
import { Meta, Story } from '@storybook/addon-docs/blocks';
@@ -8,4 +11,5 @@ import { Meta, Story } from '@storybook/addon-docs/blocks';
btn.innerHTML = 'Hello Button';
btn.addEventListener('click', action('Click'));
return btn;
- }}
+ }}"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.snapshot
similarity index 60%
rename from lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.js
rename to lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.snapshot
index 43e834a8f6f..42810578a20 100644
--- a/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/csf-to-mdx/story-parameters.output.snapshot
@@ -1,4 +1,7 @@
-import Button from './Button';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`csf-to-mdx transforms correctly using "story-parameters.input.js" data 1`] = `
+"import Button from './Button';
import { storiesOf } from '@storybook/react';
import { Meta, Story } from '@storybook/addon-docs/blocks';
@@ -15,4 +18,5 @@ import { Meta, Story } from '@storybook/addon-docs/blocks';
name='foo'
parameters={{
bar: 1,
- }}>
\ No newline at end of file
+ }}> "
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.js
deleted file mode 100644
index ec7c181b573..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from 'react';
-import Button from './Button';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Button',
-};
-
-export const story1 = () => ;
-export const secondStory = () => ;
-
-secondStory.story = {
- name: 'second story',
-};
-
-export const complexStory = () => (
-
-
-
-
-);
-
-complexStory.story = {
- name: 'complex story',
-};
-
-export const wPunctuation = () => ;
-
-wPunctuation.story = {
- name: 'w/punctuation',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.snapshot
new file mode 100644
index 00000000000..62ab723f1bd
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/basic.output.snapshot
@@ -0,0 +1,35 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "basic.input.js" data 1`] = `
+"import React from 'react';
+import Button from './Button';
+import { action } from '@storybook/addon-actions';
+
+export default {
+ title: 'Button',
+};
+
+export const story1 = () => ;
+export const secondStory = () => ;
+
+secondStory.story = {
+ name: 'second story',
+};
+
+export const complexStory = () => (
+
+
+
+
+);
+
+complexStory.story = {
+ name: 'complex story',
+};
+
+export const wPunctuation = () => ;
+
+wPunctuation.story = {
+ name: 'w/punctuation',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.js
deleted file mode 100644
index d66ccc1c495..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Some.Button',
- decorators: [withKnobs, storyFn => {storyFn}
],
-};
-
-export const withDecorator = () => ;
-
-withDecorator.story = {
- name: 'with decorator',
- decorators: [withKnobs],
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.snapshot
new file mode 100644
index 00000000000..7a587637c64
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/decorators.output.snapshot
@@ -0,0 +1,18 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "decorators.input.js" data 1`] = `
+"import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Some.Button',
+ decorators: [withKnobs, storyFn => {storyFn}
],
+};
+
+export const withDecorator = () => ;
+
+withDecorator.story = {
+ name: 'with decorator',
+ decorators: [withKnobs],
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.snapshot
similarity index 51%
rename from lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.js
rename to lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.snapshot
index eeeee0fb7f5..59d3673f8dd 100644
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/exclude-stories.output.snapshot
@@ -1,4 +1,7 @@
-import React from 'react';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "exclude-stories.input.js" data 1`] = `
+"import React from 'react';
import Button from './Button';
import { action } from '@storybook/addon-actions';
export const rowData = {
@@ -11,8 +14,8 @@ export default {
includeStories: ['story1', 'secondStory', 'complexStory'],
};
-export const story1 = () => ;
-export const secondStory = () => ;
+export const story1 = () => ;
+export const secondStory = () => ;
secondStory.story = {
name: 'second story',
@@ -20,11 +23,12 @@ secondStory.story = {
export const complexStory = () => (
-
+
);
complexStory.story = {
name: 'complex story',
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.snapshot
similarity index 51%
rename from lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.js
rename to lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.snapshot
index 9af5998b71e..18f2744d688 100644
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/parameters.output.snapshot
@@ -1,4 +1,7 @@
-import React from 'react';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "parameters.input.js" data 1`] = `
+"import React from 'react';
import Button from './Button';
import { storiesOf } from '@storybook/react';
@@ -12,8 +15,9 @@ export default {
},
};
-export const withKindParameters = () => ;
+export const withKindParameters = () => ;
withKindParameters.story = {
name: 'with kind parameters',
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.js
deleted file mode 100644
index c1e243aed14..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import React from 'react';
-export default {};
-export const plaintext = () => 'Plain text';
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.snapshot
new file mode 100644
index 00000000000..c9579e33dd7
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/plaintext.output.snapshot
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "plaintext.input.js" data 1`] = `
+"import React from 'react';
+export default {};
+export const plaintext = () => 'Plain text';"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.snapshot
similarity index 62%
rename from lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.js
rename to lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.snapshot
index 7c3b611fd11..4c8b093344f 100644
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-function.output.snapshot
@@ -1,4 +1,7 @@
-import React from 'react';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "story-function.input.js" data 1`] = `
+"import React from 'react';
export default {};
export const functionStory = () => {
@@ -11,4 +14,5 @@ export const functionStory = () => {
functionStory.story = {
name: 'function',
height: '100px',
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.js
deleted file mode 100644
index 7a204c1a1d6..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import React from 'react';
-import Button from './Button';
-import { storiesOf } from '@storybook/react';
-
-export default {
- title: 'Button',
-};
-
-export const withStoryParameters = () => ;
-
-withStoryParameters.story = {
- name: 'with story parameters',
-
- parameters: {
- header: false,
- inline: true,
- },
-};
-
-export const foo = () => ;
-
-foo.story = {
- parameters: {
- bar: 1,
- },
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.snapshot
new file mode 100644
index 00000000000..ceee4177503
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-parameters.output.snapshot
@@ -0,0 +1,30 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "story-parameters.input.js" data 1`] = `
+"import React from 'react';
+import Button from './Button';
+import { storiesOf } from '@storybook/react';
+
+export default {
+ title: 'Button',
+};
+
+export const withStoryParameters = () => ;
+
+withStoryParameters.story = {
+ name: 'with story parameters',
+
+ parameters: {
+ header: false,
+ inline: true,
+ },
+};
+
+export const foo = () => ;
+
+foo.story = {
+ parameters: {
+ bar: 1,
+ },
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.js b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.snapshot
similarity index 76%
rename from lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.js
rename to lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.snapshot
index f056484f00c..7e2f9915ceb 100644
--- a/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/mdx-to-csf/story-refs.output.snapshot
@@ -1,4 +1,7 @@
-import React from 'react';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`mdx-to-csf transforms correctly using "story-refs.input.js" data 1`] = `
+"import React from 'react';
import { action } from '@storybook/addon-actions';
import { Button } from '@storybook/react/demo';
@@ -27,4 +30,5 @@ export const soloStory = () => solo
soloStory.story = {
name: 'solo story',
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.js b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.js
deleted file mode 100644
index a48ab2f6cf8..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* eslint-disable */
-import { storyOf } from '@storybook/react';
-import { linkTo } from '@storybook/addon-links';
-import { action } from '@storybook/addon-actions';
diff --git a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.snapshot
new file mode 100644
index 00000000000..3e4d1faec48
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/default.output.snapshot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`move-buildin-addons transforms correctly using "default.input.js" data 1`] = `
+"/* eslint-disable */
+import { storyOf } from '@storybook/react';
+import { linkTo } from '@storybook/addon-links';
+import { action } from '@storybook/addon-actions';"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.js b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.js
deleted file mode 100644
index edc6a6d2e28..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* eslint-disable */
-import { action } from '@kadira/storybook-addons';
-import { storyOf } from '@storybook/react';
diff --git a/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.snapshot
new file mode 100644
index 00000000000..eef34d05c50
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/move-buildin-addons/with-no-change.output.snapshot
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`move-buildin-addons transforms correctly using "with-no-change.input.js" data 1`] = `
+"/* eslint-disable */
+import { action } from '@kadira/storybook-addons';
+import { storyOf } from '@storybook/react';"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
deleted file mode 100644
index a678481c047..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-import { configure } from '@storybook/react';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Button',
-};
-
-export const story1 = () => ;
-
-story1.story = {
- name: 'story1',
-};
-
-export const secondStory = () => ;
-
-secondStory.story = {
- name: 'second story',
-};
-
-export const complexStory = () => (
-
-
-
-
-);
-
-complexStory.story = {
- name: 'complex story',
-};
-
-export const wPunctuation = () => ;
-
-wPunctuation.story = {
- name: 'w/punctuation',
-};
-
-export const startCase = () => ;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.snapshot
new file mode 100644
index 00000000000..3e04e63a0db
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.snapshot
@@ -0,0 +1,45 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "basic.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+import { configure } from '@storybook/react';
+import { action } from '@storybook/addon-actions';
+
+export default {
+ title: 'Button',
+};
+
+export const story1 = () => ;
+
+story1.story = {
+ name: 'story1',
+};
+
+export const secondStory = () => ;
+
+secondStory.story = {
+ name: 'second story',
+};
+
+export const complexStory = () => (
+
+
+
+
+);
+
+complexStory.story = {
+ name: 'complex story',
+};
+
+export const wPunctuation = () => ;
+
+wPunctuation.story = {
+ name: 'w/punctuation',
+};
+
+export const startCase = () => ;"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.snapshot
similarity index 74%
rename from lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.js
rename to lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.snapshot
index 86f83d12732..59e217c23eb 100644
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/collision.output.snapshot
@@ -1,4 +1,7 @@
-export const foo = 1;
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "collision.input.js" data 1`] = `
+"export const foo = 1;
const bar = 1;
const barStory = 1;
const baz = 1;
@@ -31,4 +34,5 @@ export const bazStory2 = () => ;
bazStory2.story = {
name: 'baz',
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.js
deleted file mode 100644
index a7972561330..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- title: 'bar',
-};
-
-export const constStory = () => ;
-
-constStory.story = {
- name: 'const',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.snapshot
new file mode 100644
index 00000000000..217201f7683
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/const.output.snapshot
@@ -0,0 +1,13 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "const.input.js" data 1`] = `
+"export default {
+ title: 'bar',
+};
+
+export const constStory = () => ;
+
+constStory.story = {
+ name: 'const',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.js
deleted file mode 100644
index 26ab8c2c07e..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Some.Button',
- decorators: [withKnobs, storyFn => {storyFn}
],
-};
-
-export const withDecorator = () => ;
-
-withDecorator.story = {
- name: 'with decorator',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.snapshot
new file mode 100644
index 00000000000..86219a07d64
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/decorators.output.snapshot
@@ -0,0 +1,18 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "decorators.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Some.Button',
+ decorators: [withKnobs, storyFn => {storyFn}
],
+};
+
+export const withDecorator = () => ;
+
+withDecorator.story = {
+ name: 'with decorator',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.js
deleted file mode 100644
index c75670b2030..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Button',
-};
-
-export const defaultStory = () => ;
-
-defaultStory.story = {
- name: 'default',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.snapshot
new file mode 100644
index 00000000000..b20eea88d45
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/default.output.snapshot
@@ -0,0 +1,17 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "default.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Button',
+};
+
+export const defaultStory = () => ;
+
+defaultStory.story = {
+ name: 'default',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.js
deleted file mode 100644
index 0dfb48fb260..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- title: 'bar',
-};
-
-export const _1 = () => ;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.snapshot
new file mode 100644
index 00000000000..258a578f683
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/digit.output.snapshot
@@ -0,0 +1,9 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "digit.input.js" data 1`] = `
+"export default {
+ title: 'bar',
+};
+
+export const _1 = () => ;"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.js
deleted file mode 100644
index 57f84925325..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.js
+++ /dev/null
@@ -1,12 +0,0 @@
-export const foo = 1;
-
-export default {
- title: 'bar',
- excludeStories: ['foo'],
-};
-
-export const baz = () => ;
-
-baz.story = {
- name: 'baz',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.snapshot
new file mode 100644
index 00000000000..c88bde4ae61
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/exports.output.snapshot
@@ -0,0 +1,16 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "exports.input.js" data 1`] = `
+"export const foo = 1;
+
+export default {
+ title: 'bar',
+ excludeStories: ['foo'],
+};
+
+export const baz = () => ;
+
+baz.story = {
+ name: 'baz',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.js
deleted file mode 100644
index 5cc7ce8ab84..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-import { storiesOf } from '@storybook/react';
-
-export default {
- title: 'foo',
-};
-
-const bar = 1;
-
-storiesOf('foo', module).add('bar', () => );
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.snapshot
new file mode 100644
index 00000000000..94a2afbacb3
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/module.output.snapshot
@@ -0,0 +1,16 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "module.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+import { storiesOf } from '@storybook/react';
+
+export default {
+ title: 'foo',
+};
+
+const bar = 1;
+
+storiesOf('foo', module).add('bar', () => );"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.js
deleted file mode 100644
index 588710a8a59..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Button1',
-};
-
-export const story1 = () => ;
-
-story1.story = {
- name: 'story1',
-};
-
-export const story2 = () => ;
-
-story2.story = {
- name: 'story2',
-};
-
-export default {
- title: 'Button2',
-};
-
-export const story1Story = () => ;
-
-story1Story.story = {
- name: 'story1',
-};
-
-export const story2Story = () => ;
-
-story2Story.story = {
- name: 'story2',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.snapshot
new file mode 100644
index 00000000000..2c2fbe56747
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/multi.output.snapshot
@@ -0,0 +1,39 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "multi.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Button1',
+};
+
+export const story1 = () => ;
+
+story1.story = {
+ name: 'story1',
+};
+
+export const story2 = () => ;
+
+story2.story = {
+ name: 'story2',
+};
+
+export default {
+ title: 'Button2',
+};
+
+export const story1Story = () => ;
+
+story1Story.story = {
+ name: 'story1',
+};
+
+export const story2Story = () => ;
+
+story2Story.story = {
+ name: 'story2',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.js
deleted file mode 100644
index 021adda2932..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Button',
-
- parameters: {
- component: Button,
- foo: 1,
- bar: 2,
- },
-};
-
-export const withKindParameters = () => ;
-
-withKindParameters.story = {
- name: 'with kind parameters',
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.snapshot
new file mode 100644
index 00000000000..e2b913931d3
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/parameters.output.snapshot
@@ -0,0 +1,23 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "parameters.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Button',
+
+ parameters: {
+ component: Button,
+ foo: 1,
+ bar: 2,
+ },
+};
+
+export const withKindParameters = () => ;
+
+withKindParameters.story = {
+ name: 'with kind parameters',
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.snapshot
similarity index 50%
rename from lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.js
rename to lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.snapshot
index bf3cf6f1247..e088c87fc1b 100644
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-decorators.output.snapshot
@@ -1,11 +1,14 @@
-import React from 'react';
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "story-decorators.input.js" data 1`] = `
+"import React from 'react';
import Button from './Button';
export default {
title: 'Some.Button',
};
-export const withStoryParamsAndDecorators = () => ;
+export const withStoryParamsAndDecorators = () => ;
withStoryParamsAndDecorators.story = {
name: 'with story params and decorators',
@@ -14,12 +17,13 @@ withStoryParamsAndDecorators.story = {
bar: 1,
},
- decorators: [withKnobs, storyFn => {storyFn}
],
+ decorators: [withKnobs, storyFn => {storyFn}
],
};
-export const withStoryDecorators = () => ;
+export const withStoryDecorators = () => ;
withStoryDecorators.story = {
name: 'with story decorators',
decorators: [withKnobs],
-};
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.js
deleted file mode 100644
index 9aedd776c4f..00000000000
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/* eslint-disable */
-import React from 'react';
-import Button from './Button';
-
-export default {
- title: 'Button',
-};
-
-export const withStoryParameters = () => ;
-
-withStoryParameters.story = {
- name: 'with story parameters',
-
- parameters: {
- header: false,
- inline: true,
- },
-};
-
-export const foo = () => ;
-
-foo.story = {
- name: 'foo',
-
- parameters: {
- bar: 1,
- },
-};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.snapshot b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.snapshot
new file mode 100644
index 00000000000..d45863cd6f3
--- /dev/null
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/story-parameters.output.snapshot
@@ -0,0 +1,32 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`storiesof-to-csf transforms correctly using "story-parameters.input.js" data 1`] = `
+"/* eslint-disable */
+import React from 'react';
+import Button from './Button';
+
+export default {
+ title: 'Button',
+};
+
+export const withStoryParameters = () => ;
+
+withStoryParameters.story = {
+ name: 'with story parameters',
+
+ parameters: {
+ header: false,
+ inline: true,
+ },
+};
+
+export const foo = () => ;
+
+foo.story = {
+ name: 'foo',
+
+ parameters: {
+ bar: 1,
+ },
+};"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.js b/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.snapshot
similarity index 67%
rename from lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.js
rename to lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.snapshot
index 1aaed8b94b6..d74f4053f20 100644
--- a/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.output.snapshot
@@ -1,11 +1,14 @@
-/* eslint-disable */
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`update-addon-info transforms correctly using "update-addon-info.input.js" data 1`] = `
+"/* eslint-disable */
import React from 'react'
import Button from './Button'
import { storiesOf } from '@storybook/react'
import { action } from '@storybook/addon-actions'
-import { withInfo } from "@storybook/addon-info";
+import { withInfo } from \\"@storybook/addon-info\\";
storiesOf(
'Button'
@@ -13,54 +16,54 @@ storiesOf(
'This is the basic usage with the button with providing a label to show the text.'
)(() => (
-
+
- Click the "?" mark at top-right to view the info.
+ Click the \\"?\\" mark at top-right to view the info.
)))
storiesOf('Button').add('simple usage (inline info)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
inline: true
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (disable source)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
source: false,
inline: true
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (no header)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
header: false,
inline: true
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (no prop tables)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
propTables: false,
inline: true
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (custom propTables)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
Since, the story source code is wrapped inside a div, info addon can't figure out propTypes on it's own.
- So, we need to give relevant React component classes manually using \`propTypes\` option as shown below:
+ So, we need to give relevant React component classes manually using \\\\\`propTypes\\\\\` option as shown below:
~~~js
storiesOf('Button')
.addWithInfo(
@@ -70,13 +73,13 @@ storiesOf('Button').add('simple usage (custom propTables)', withInfo({
{ inline: true, propTables: [Button]}
);
~~~
- `,
+ \`,
inline: true,
propTables: [Button]
})(() => (
-
+
)))
@@ -90,19 +93,19 @@ storiesOf('Button').add('simple usage (JSX description)', withInfo()(() => (
-
+
- Click the "?" mark at top-right to view the info.
+ Click the \\"?\\" mark at top-right to view the info.
)))
@@ -117,63 +120,63 @@ storiesOf('Button').add('simple usage (inline JSX description)', withInfo({
nulla.
-
+
This is a link
-
+
,
inline: true
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (maxPropsInLine === 1)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
inline: true,
maxPropsIntoLine: 1
-})(() => ))
+})(() => ))
storiesOf('Button').add('simple usage (maxPropObjectKeys === 5)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
inline: true,
maxPropObjectKeys: 5
})(
- () =>
+ () =>
))
storiesOf('Button').add('simple usage (maxPropArrayLength === 8)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
inline: true,
maxPropArrayLength: 8
})(
- () =>
+ () =>
))
storiesOf('Button').add('simple usage (maxPropStringLength === 10)', withInfo({
- text: `
+ text: \`
This is the basic usage with the button with providing a label to show the text.
- `,
+ \`,
inline: true,
maxPropStringLength: 5
-})(() => ))
+})(() => ))
storiesOf('Button').add('with custom styles', withInfo({
- text: `
+ text: \`
This is an example of how to customize the styles of the info components.
- For the full styles available, see \`./src/components/Story.js\`
- `,
+ For the full styles available, see \\\\\`./src/components/Story.js\\\\\`
+ \`,
inline: true,
@@ -183,7 +186,7 @@ storiesOf('Button').add('with custom styles', withInfo({
}
return stylesheet
}
-})(() => ))
+})(() => ))
storiesOf('shared/ProgressBar', module)
.addDecorator(withKnobs)
@@ -191,4 +194,5 @@ storiesOf('shared/ProgressBar', module)
- )));
+ )));"
+`;
diff --git a/lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.js b/lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.snapshot
similarity index 71%
rename from lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.js
rename to lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.snapshot
index 16520880f65..9b6c6005344 100644
--- a/lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/update-organisation-name/update-organisation-name.output.snapshot
@@ -1,4 +1,7 @@
-/* eslint-disable */
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`update-organisation-name transforms correctly using "update-organisation-name.input.js" data 1`] = `
+"/* eslint-disable */
import '@storybook/addons';
import '@storybook/addon-comments';
import '@storybook/addon-centered';
@@ -16,4 +19,5 @@ import '@storybook/cli';
import '@storybook/react';
import '@storybook/react-native';
import '@storybook/ui';
-import { storiesOf } from '@storybook/react';
+import { storiesOf } from '@storybook/react';"
+`;
diff --git a/lib/codemod/src/transforms/__tests__/add-component-parameters.test.js b/lib/codemod/src/transforms/__tests__/add-component-parameters.test.js
deleted file mode 100644
index 6ceb0962162..00000000000
--- a/lib/codemod/src/transforms/__tests__/add-component-parameters.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-defineTest(
- __dirname,
- 'add-component-parameters',
- null,
- 'add-component-parameters/add-component-parameters'
-);
diff --git a/lib/codemod/src/transforms/__tests__/csf-to-mdx.test.js b/lib/codemod/src/transforms/__tests__/csf-to-mdx.test.js
deleted file mode 100644
index 6a699970c68..00000000000
--- a/lib/codemod/src/transforms/__tests__/csf-to-mdx.test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-const testNames = [
- 'basic',
- 'decorators',
- 'parameters',
- 'story-parameters',
- 'exclude-stories',
- 'story-function',
-];
-
-testNames.forEach(testName => {
- defineTest(__dirname, `csf-to-mdx`, null, `csf-to-mdx/${testName}`);
-});
diff --git a/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.js b/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.js
deleted file mode 100644
index 19de8706be9..00000000000
--- a/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-const testNames = [
- 'basic',
- 'decorators',
- 'parameters',
- 'story-parameters',
- 'exclude-stories',
- 'story-refs',
- 'plaintext',
- 'story-function',
-];
-
-testNames.forEach(testName => {
- defineTest(__dirname, `mdx-to-csf`, null, `mdx-to-csf/${testName}`);
-});
diff --git a/lib/codemod/src/transforms/__tests__/move-buildin-addons.js b/lib/codemod/src/transforms/__tests__/move-buildin-addons.js
deleted file mode 100644
index ac100e30871..00000000000
--- a/lib/codemod/src/transforms/__tests__/move-buildin-addons.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-defineTest(__dirname, 'move-buildin-addons', null, 'move-buildin-addons/default');
-defineTest(__dirname, 'move-buildin-addons', null, 'move-buildin-addons/with-no-change');
diff --git a/lib/codemod/src/transforms/__tests__/storiesof-to-csf.test.js b/lib/codemod/src/transforms/__tests__/storiesof-to-csf.test.js
deleted file mode 100644
index 05f60dd9e76..00000000000
--- a/lib/codemod/src/transforms/__tests__/storiesof-to-csf.test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import fs from 'fs';
-import path from 'path';
-
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-jest.mock('@storybook/node-logger');
-
-fs.readdirSync(path.resolve(__dirname, '../__testfixtures__/storiesof-to-csf'))
- .map(filename => filename.match(/^(.*)\.input\.js$/))
- .filter(Boolean)
- .map(match => match[1])
- .forEach(testName => {
- defineTest(__dirname, `storiesof-to-csf`, null, `storiesof-to-csf/${testName}`);
- });
diff --git a/lib/codemod/src/transforms/__tests__/transforms.tests.js b/lib/codemod/src/transforms/__tests__/transforms.tests.js
new file mode 100644
index 00000000000..eb047552d2c
--- /dev/null
+++ b/lib/codemod/src/transforms/__tests__/transforms.tests.js
@@ -0,0 +1,32 @@
+import path from 'path';
+import fs from 'fs';
+import 'jest-specific-snapshot';
+// TODO move back to original 'jscodeshift' package as soon as https://github.com/facebook/jscodeshift/pull/297 is released
+import { applyTransform } from '@hypnosphi/jscodeshift/dist/testUtils';
+
+jest.mock('@storybook/node-logger');
+
+const inputRegExp = /\.input\.js$/;
+
+const fixturesDir = path.resolve(__dirname, '../__testfixtures__');
+fs.readdirSync(fixturesDir).forEach(transformName => {
+ const transformFixturesDir = path.join(fixturesDir, transformName);
+ // eslint-disable-next-line jest/valid-describe
+ describe(transformName, () =>
+ fs
+ .readdirSync(transformFixturesDir)
+ .filter(fileName => inputRegExp.test(fileName))
+ .forEach(fileName => {
+ const inputPath = path.join(transformFixturesDir, fileName);
+ it(`transforms correctly using "${fileName}" data`, () =>
+ expect(
+ applyTransform(
+ // eslint-disable-next-line global-require,import/no-dynamic-require
+ require(path.join(__dirname, '..', transformName)),
+ null,
+ { path: inputPath, source: fs.readFileSync(inputPath, 'utf8') }
+ )
+ ).toMatchSpecificSnapshot(inputPath.replace(inputRegExp, '.output.snapshot')));
+ })
+ );
+});
diff --git a/lib/codemod/src/transforms/__tests__/update-addon-info.test.js b/lib/codemod/src/transforms/__tests__/update-addon-info.test.js
deleted file mode 100644
index 0c71d93f970..00000000000
--- a/lib/codemod/src/transforms/__tests__/update-addon-info.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-defineTest(__dirname, 'update-addon-info', null, 'update-addon-info/update-addon-info');
diff --git a/lib/codemod/src/transforms/__tests__/update-organisation-name.test.js b/lib/codemod/src/transforms/__tests__/update-organisation-name.test.js
deleted file mode 100644
index 12654c82231..00000000000
--- a/lib/codemod/src/transforms/__tests__/update-organisation-name.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineTest } from 'jscodeshift/dist/testUtils';
-
-defineTest(
- __dirname,
- 'update-organisation-name',
- null,
- 'update-organisation-name/update-organisation-name'
-);
diff --git a/yarn.lock b/yarn.lock
index 265d6d5ebe9..6894cdf8990 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2298,6 +2298,30 @@
dependencies:
"@hapi/hoek" "8.x.x"
+"@hypnosphi/jscodeshift@^0.6.4":
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/@hypnosphi/jscodeshift/-/jscodeshift-0.6.4.tgz#49a3be6ac515af831f8a3e630380e3511c8c0fb7"
+ integrity sha512-Ir4KMO+LW+4CoB21OZm0gzbUjwNsZ2zBvOBm4r4GP+d+qyxj5iIJXZF/sJUYUAEJJ3LnlnHL0FzgfBge+7PfLQ==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/preset-env" "^7.1.6"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.18.1"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
"@iarna/toml@^2.2.0":
version "2.2.3"
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab"
@@ -5465,6 +5489,11 @@ ast-types@0.12.4, ast-types@^0.12.2:
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.4.tgz#71ce6383800f24efc9a1a3308f3a6e420a0974d1"
integrity sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==
+ast-types@0.13.2:
+ version "0.13.2"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48"
+ integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==
+
ast-types@0.9.6:
version "0.9.6"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
@@ -25637,6 +25666,16 @@ recast@^0.17.3:
private "^0.1.8"
source-map "~0.6.1"
+recast@^0.18.1:
+ version "0.18.5"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.18.5.tgz#9d5adbc07983a3c8145f3034812374a493e0fe4d"
+ integrity sha512-sD1WJrpLQAkXGyQZyGzTM75WJvyAd98II5CHdK3IYbt/cZlU0UzCRVU11nUFNXX9fBVEt4E9ajkMjBlUlG+Oog==
+ dependencies:
+ ast-types "0.13.2"
+ esprima "~4.0.0"
+ private "^0.1.8"
+ source-map "~0.6.1"
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"