Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ describe('angular-to-angular-vite', () => {
vi.mocked(mockPackageManager.removeDependencies).mockResolvedValue(undefined);
vi.mocked(mockPackageManager.addDependencies).mockResolvedValue(undefined);
vi.mocked(mockPackageManager.getDependencyVersion).mockReturnValue(null);
vi.mocked(mockPackageManager.getAllDependencies).mockReturnValue({});
// Default: angular.json doesn't exist (AngularJSON gracefully skips it). Tests that need
// angular.json content override this via `mockAngularJson(...)`.
mockExistsSync.mockReturnValue(false);
Expand Down Expand Up @@ -352,6 +353,32 @@ describe('angular-to-angular-vite', () => {
} as any);

expect(mockPackageManager.removeDependencies).toHaveBeenCalledWith([ANGULAR_PACKAGE]);
// @analogjs/vite-plugin-angular is a required peer of @storybook/angular-vite and is
// installed alongside the framework because yarn/pnpm do not auto-install missing peers.
expect(mockPackageManager.addDependencies).toHaveBeenCalledWith(
{ type: 'devDependencies', skipInstall: true },
[`${ANGULAR_VITE_PACKAGE}@9.0.0`, '@analogjs/vite-plugin-angular']
);
});

it('does not re-add @analogjs/vite-plugin-angular when the project already declares it', async () => {
mockPromptConfirm.mockResolvedValue(false);
mockReadFile.mockResolvedValue(`export default { framework: '${ANGULAR_PACKAGE}' };`);
vi.mocked(mockPackageManager.getAllDependencies).mockReturnValue({
[ANGULAR_PACKAGE]: '^9.0.0',
'@analogjs/vite-plugin-angular': '^2.5.0',
});

await angularToAngularVite.run!({
result: baseResult,
dryRun: false,
packageManager: mockPackageManager,
mainConfigPath: '/project/.storybook/main.ts',
storiesPaths: [],
configDir: '.storybook',
storybookVersion: '9.0.0',
} as any);

expect(mockPackageManager.addDependencies).toHaveBeenCalledWith(
{ type: 'devDependencies', skipInstall: true },
[`${ANGULAR_VITE_PACKAGE}@9.0.0`]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,8 +527,11 @@ export const angularToAngularVite: Fix<AngularToAngularViteOptions> = {
} else {
logger.debug('Updating dependencies...');
await packageManager.removeDependencies([ANGULAR_PACKAGE]);

const allDeps = packageManager.getAllDependencies();
await packageManager.addDependencies({ type: 'devDependencies', skipInstall: true }, [
`${ANGULAR_VITE_PACKAGE}@${storybookVersion}`,
...(allDeps['@analogjs/vite-plugin-angular'] ? [] : ['@analogjs/vite-plugin-angular']),
Comment thread
valentinpalkovic marked this conversation as resolved.
]);
}

Expand Down
Loading