Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yannbf committed Mar 8, 2024
1 parent b197874 commit b74ca12
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import { describe, afterEach, it, expect, vi } from 'vitest';
import type { StorybookConfig } from '@storybook/types';
import type { JsPackageManager } from '@storybook/core-common';
import * as docsUtils from '../../doctor/getIncompatibleStorybookPackages';

import { upgradeStorybookRelatedDependencies } from './upgrade-storybook-related-dependencies';

vi.mock('../../doctor/getIncompatibleStorybookPackages');

const check = async ({
packageManager,
main: mainConfig = {},
storybookVersion = '8.0.0',
}: {
packageManager: Partial<JsPackageManager>;
main?: Partial<StorybookConfig> & Record<string, unknown>;
storybookVersion?: string;
}) => {
return upgradeStorybookRelatedDependencies.check({
packageManager: packageManager as any,
configDir: '',
mainConfig: mainConfig as any,
storybookVersion,
});
};

describe('upgrade-storybook-related-dependencies fix', () => {
afterEach(() => {
vi.restoreAllMocks();
});

it('should detect storyshots registered in main.js', async () => {
const analyzedPackages = [
{
packageName: '@chromatic-com/storybook',
packageVersion: '1.2.9',
availableUpgrade: '2.0.0',
hasIncompatibleDependencies: false,
},
{
packageName: '@storybook/jest',
packageVersion: '0.2.3',
availableUpgrade: '1.0.0',
hasIncompatibleDependencies: false,
},
{
packageName: '@storybook/preset-create-react-app',
packageVersion: '3.2.0',
availableUpgrade: '8.0.0',
hasIncompatibleDependencies: true,
},
{
packageName: 'storybook',
packageVersion: '8.0.0',
availableUpgrade: undefined,
hasIncompatibleDependencies: true,
},
];
vi.mocked(docsUtils.getIncompatibleStorybookPackages).mockResolvedValue(analyzedPackages);
await expect(
check({
packageManager: {
getAllDependencies: async () => ({
'@chromatic-com/storybook': '1.2.9',
'@storybook/jest': '0.2.3',
'@storybook/preset-create-react-app': '3.2.0',
storybook: '8.0.0',
}),
latestVersion: async (pkgName) =>
analyzedPackages.find((pkg) => pkg.packageName === pkgName)?.availableUpgrade || '',
},
})
).resolves.toMatchInlineSnapshot(`
{
"upgradable": [
{
"afterVersion": "2.0.0",
"beforeVersion": "1.2.9",
"packageName": "@chromatic-com/storybook",
},
{
"afterVersion": "1.0.0",
"beforeVersion": "0.2.3",
"packageName": "@storybook/jest",
},
{
"afterVersion": "8.0.0",
"beforeVersion": "3.2.0",
"packageName": "@storybook/preset-create-react-app",
},
],
}
`);
});
});
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { dedent } from 'ts-dedent';
import type { Fix } from '../types';
import { cyan, yellow } from 'chalk';
import { getIncompatibleStorybookPackages } from '../../doctor/getIncompatibleStorybookPackages';
import { valid, coerce } from 'semver';
import type { JsPackageManager } from '@storybook/core-common';
import { isCorePackage } from '@storybook/core-common';
import type { Fix } from '../types';
import { getIncompatibleStorybookPackages } from '../../doctor/getIncompatibleStorybookPackages';

type PackageMetadata = {
packageName: string;
Expand Down Expand Up @@ -74,12 +74,10 @@ export const upgradeStorybookRelatedDependencies = {
).map((packageName) => [packageName, allDependencies[packageName]]) as [string, string][];

const packageVersions = await getLatestVersions(packageManager, uniquePackages);

const upgradablePackages = packageVersions.filter(
({ packageName, afterVersion, beforeVersion }) => {
if (beforeVersion === null) {
return false;
}
if (afterVersion === null) {
if (beforeVersion === null || afterVersion === null) {
return false;
}

Expand Down

0 comments on commit b74ca12

Please sign in to comment.