diff --git a/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.input.js b/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.input.js
index b96c0bcb5eb3..8253cc11c6ca 100644
--- a/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.input.js
+++ b/lib/codemod/src/transforms/__testfixtures__/update-addon-info/update-addon-info.input.js
@@ -188,3 +188,11 @@ storiesOf('Button').addWithInfo(
}
}
)
+
+storiesOf('shared/ProgressBar', module)
+ .addDecorator(withKnobs)
+ .addWithInfo('default style', () => (
+
+ ));
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.js
index 1da578e189f0..ed3e5f29d7ae 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.js
@@ -184,3 +184,11 @@ storiesOf('Button').add('with custom styles', withInfo({
return stylesheet
}
})(() => ))
+
+storiesOf('shared/ProgressBar', module)
+ .addDecorator(withKnobs)
+ .add('default style', withInfo('default style')(() => (
+
+ )));
diff --git a/lib/codemod/src/transforms/update-addon-info.js b/lib/codemod/src/transforms/update-addon-info.js
index 4ad524d7cae9..591d85643e7e 100644
--- a/lib/codemod/src/transforms/update-addon-info.js
+++ b/lib/codemod/src/transforms/update-addon-info.js
@@ -36,6 +36,10 @@ export default function transformer(file, api) {
*/
const getOptions = args => {
if (args[3] === undefined) {
+ if (args[2] === undefined) {
+ // when the optional description string is not supplied for addWithInfo, just use story name
+ return [args[0]];
+ }
return [args[1]];
}
return [
@@ -56,10 +60,15 @@ export default function transformer(file, api) {
const node = addWithInfoExpression.node;
const args = node.arguments;
+ // if optional description string is not supplied, the story component becomes second arg
+ const storyComponent = args[2] ? args[2] : args[1];
+
node.callee.property.name = 'add';
node.arguments = [
args[0],
- j.callExpression(j.callExpression(j.identifier('withInfo'), getOptions(args)), [args[2]]),
+ j.callExpression(j.callExpression(j.identifier('withInfo'), getOptions(args)), [
+ storyComponent,
+ ]),
];
return node;