Skip to content

Commit

Permalink
Update Storybook metadata to account for sb6 through 8
Browse files Browse the repository at this point in the history
  • Loading branch information
ethriel3695 committed Jun 3, 2024
1 parent 3148c42 commit 87addb4
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 3 deletions.
2 changes: 1 addition & 1 deletion bin-src/__mocks__/normalProjectJson/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"packageManager": { "type": "yarn", "version": "1.22.19" },
"typescriptOptions": { "reactDocgen": "react-docgen-typescript" },
"preview": { "usesGlobals": false },
"framework": { "name": "@storybook/react-webpack5", "options": {} },
"framework": { "name": "@storybook/react-webpack5", "options": {}, "version": "8.1.5" },
"builder": "@storybook/builder-webpack5",
"renderer": "@storybook/react",
"storybookVersion": "8.1.5",
Expand Down
66 changes: 66 additions & 0 deletions bin-src/__mocks__/sb6ProjectJson/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"generatedAt": 1717341501873,
"builder": {
"name": "webpack4"
},
"hasCustomBabel": false,
"hasCustomWebpack": true,
"hasStaticDirs": true,
"hasStorybookEslint": false,
"refCount": 0,
"monorepo": "Turborepo",
"packageManager": {
"type": "yarn",
"version": "1.22.19"
},
"features": {
"postcss": false,
"interactionsDebugger": true,
"warnOnLegacyHierarchySeparator": false
},
"storybookVersion": "6.5.16",
"language": "javascript",
"storybookPackages": {
"@storybook/addon-actions": {
"version": "6.5.16"
},
"@storybook/addons": {
"version": "6.5.16"
},
"@storybook/builder-webpack4": {
"version": "6.5.16"
},
"@storybook/manager-webpack4": {
"version": "6.5.16"
},
"@storybook/react": {
"version": "6.5.16"
},
"@storybook/testing-library": {
"version": "0.0.13"
},
"@storybook/theming": {
"version": "6.5.16"
},
"msw-storybook-addon": {
"version": "1.7.0"
},
"storybook-mock-date-decorator": {
"version": "1.0.0"
}
},
"framework": {
"name": "react"
},
"addons": {
"@storybook/addon-links": {
"version": "6.5.16"
},
"@storybook/addon-essentials": {
"version": "6.5.16"
},
"@storybook/addon-interactions": {
"version": "6.5.16"
}
}
}
45 changes: 44 additions & 1 deletion node-src/lib/getStorybookInfo.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,12 @@ describe('getStorybookInfo', () => {
{
name: 'essentials',
packageName: '@storybook/addon-essentials',
packageVersion: expect.any(String),
},
{
name: 'compiler-swc',
packageName: '@storybook/addon-webpack5-compiler-swc',
packageVersion: expect.any(String),
},
],
builder: { name: '@storybook/react-webpack5', packageVersion: '8.1.5' },
Expand All @@ -80,7 +82,19 @@ describe('getStorybookInfo', () => {
// We're getting the result of tracing chromatic-cli's node_modules here.
expect.objectContaining({
viewLayer: 'react',
version: expect.any(String),
version: '8.1.5',
addons: expect.arrayContaining([
expect.objectContaining({
name: 'essentials',
packageName: '@storybook/addon-essentials',
packageVersion: expect.any(String),
}),
expect.objectContaining({
name: 'compiler-swc',
packageName: '@storybook/addon-webpack5-compiler-swc',
packageVersion: expect.any(String),
}),
]),
builder: { name: '@storybook/react-webpack5', packageVersion: '8.1.5' },
})
);
Expand Down Expand Up @@ -214,5 +228,34 @@ describe('getStorybookInfo', () => {
viewLayer: '@storybook/react-webpack5',
});
});

it('returns the correct metadata for Storybook 6', async () => {
const ctx = getContext({
options: { storybookBuildDir: 'bin-src/__mocks__/sb6ProjectJson' },
packageJson: { dependencies: REACT },
});
expect(await getStorybookInfo(ctx)).toEqual({
addons: [
{
name: 'links',
packageName: '@storybook/addon-links',
packageVersion: '6.5.16',
},
{
name: 'essentials',
packageName: '@storybook/addon-essentials',
packageVersion: '6.5.16',
},
{
name: 'interactions',
packageName: '@storybook/addon-interactions',
packageVersion: '6.5.16',
},
],
builder: { name: 'webpack4', packageVersion: '6.5.16' },
version: '6.5.16',
viewLayer: 'react',
});
});
});
});
6 changes: 5 additions & 1 deletion node-src/lib/getStorybookMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ const findAddons = async (ctx, mainConfig, v7) => {
return {
name: supportedAddons[name],
packageName: name,
packageVersion: allDependencies[name],
packageVersion: allDependencies[name] || addon.version,
};
}),
};
Expand Down Expand Up @@ -204,15 +204,19 @@ export const findStorybookConfigFile = async (ctx: Context, pattern: RegExp) =>

export const getStorybookMetadata = async (ctx: Context) => {
const configDir = ctx.options.storybookConfigDir ?? '.storybook';
console.log(configDir);
const r = typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : require;

let mainConfig;
let v7 = false;
try {
mainConfig = await r(path.resolve(configDir, 'main'));
console.log(mainConfig);
} catch (storybookV6error) {
console.log(storybookV6error);
try {
mainConfig = await readConfig(await findStorybookConfigFile(ctx, /^main\.[jt]sx?$/));
console.log(mainConfig);
v7 = true;
} catch (storybookV7error) {
mainConfig = null;
Expand Down

0 comments on commit 87addb4

Please sign in to comment.