Build: Require explicit relative import extensions#34417
Conversation
Package BenchmarksCommit: No significant changes detected, all good. 👏 |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR converts many relative import/export specifiers to explicit file extensions (e.g., Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
|
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
code/addons/docs/src/mdx-loader.ts (1)
36-36:⚠️ Potential issue | 🟡 MinorConsider using Storybook's node logger instead of console.error.
This file uses
console.errorin the error handler. Per coding guidelines, Storybook code should usestorybook/internal/node-loggerfor server-side logging instead of rawconsole.*calls. While webpack loaders are somewhat isolated, the logger would provide consistent error formatting across the codebase.📝 Suggested change
+import { logger } from 'storybook/internal/node-logger'; + async function loader(this: LoaderContext, content: string): Promise<void> { const callback = this.async(); const options = { ...this.getOptions(), filepath: this.resourcePath }; try { const result = await compile(content, options); const code = `${DEFAULT_RENDERER}\n${result}`; return callback(null, code); } catch (err: any) { - console.error('Error loading:', this.resourcePath); + logger.error('Error loading:', this.resourcePath); return callback(err); } }As per coding guidelines: "Use Storybook loggers (storybook/internal/node-logger for server-side, storybook/internal/client-logger for client-side) instead of raw console.* methods in normal code paths. Avoid console.log, console.warn, and console.error unless the file is isolated enough that importing the logger is not reasonable."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@code/addons/docs/src/mdx-loader.ts` at line 36, Replace the raw console.error call in the error handler of the mdx loader with Storybook's server logger: import the node logger from 'storybook/internal/node-logger' and call its error method instead of console.error, including the error object and this.resourcePath for context (i.e., update the error use in the function/method that currently logs "Error loading:" and references this.resourcePath to use logger.error with a descriptive message and the caught error). Ensure the import is added at the top of mdx-loader.ts and remove the console.error usage so server-side logs use Storybook's formatting.
🧹 Nitpick comments (2)
code/addons/a11y/src/components/A11YPanel.test.tsx (1)
18-19: Mock path should match import specifier for consistency.The import at line 13 uses
'./A11yContext.tsx'but the mock path here uses'./A11yContext'without the extension. For consistency with the explicit-extension convention, consider updating the mock path.♻️ Suggested fix
-vi.mock('./A11yContext'); +vi.mock('./A11yContext.tsx'); const mockedUseA11yContext = vi.mocked(useA11yContext);🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@code/addons/a11y/src/components/A11YPanel.test.tsx` around lines 18 - 19, Update the vi.mock call to use the exact import specifier used elsewhere (include the .tsx extension) so the mock path matches the import; change the mock invocation that references './A11yContext' to './A11yContext.tsx' and ensure the mockedUseA11yContext (vi.mocked(useA11yContext)) still references the same symbol to keep the test mock consistent with the import.code/builders/builder-vite/src/index.test.ts (1)
9-11: Mock path should match import specifier for consistency.The import at line 7 uses
'./vite-server.ts'but the mock path here uses'./vite-server'without the extension. For consistency and to ensure the mock resolves correctly with the new explicit-extension convention, consider updating the mock path.♻️ Suggested fix
-vi.mock('./vite-server', () => ({ +vi.mock('./vite-server.ts', () => ({ createViteServer: vi.fn(), }));🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@code/builders/builder-vite/src/index.test.ts` around lines 9 - 11, Update the mock path to match the import specifier: change the vi.mock call that currently targets './vite-server' to use the explicit extension './vite-server.ts' so it resolves consistently with the import of createViteServer; ensure the mocked export name createViteServer remains vi.fn() to keep tests functioning.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@code/addons/docs/src/mdx-loader.ts`:
- Line 36: Replace the raw console.error call in the error handler of the mdx
loader with Storybook's server logger: import the node logger from
'storybook/internal/node-logger' and call its error method instead of
console.error, including the error object and this.resourcePath for context
(i.e., update the error use in the function/method that currently logs "Error
loading:" and references this.resourcePath to use logger.error with a
descriptive message and the caught error). Ensure the import is added at the top
of mdx-loader.ts and remove the console.error usage so server-side logs use
Storybook's formatting.
---
Nitpick comments:
In `@code/addons/a11y/src/components/A11YPanel.test.tsx`:
- Around line 18-19: Update the vi.mock call to use the exact import specifier
used elsewhere (include the .tsx extension) so the mock path matches the import;
change the mock invocation that references './A11yContext' to
'./A11yContext.tsx' and ensure the mockedUseA11yContext
(vi.mocked(useA11yContext)) still references the same symbol to keep the test
mock consistent with the import.
In `@code/builders/builder-vite/src/index.test.ts`:
- Around line 9-11: Update the mock path to match the import specifier: change
the vi.mock call that currently targets './vite-server' to use the explicit
extension './vite-server.ts' so it resolves consistently with the import of
createViteServer; ensure the mocked export name createViteServer remains vi.fn()
to keep tests functioning.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0a92af25-92b0-47ac-aaf6-3c92404fc54e
📒 Files selected for processing (300)
AGENTS.mdcode/.eslintrc.jscode/.storybook/bench/bench.stories.tsxcode/.storybook/preview.tsxcode/.storybook/storybook.setup.tscode/addons/a11y/build-config.tscode/addons/a11y/src/a11yRunner.test.tscode/addons/a11y/src/a11yRunner.tscode/addons/a11y/src/a11yRunnerUtils.test.tscode/addons/a11y/src/a11yRunnerUtils.tscode/addons/a11y/src/axeRuleMappingHelper.tscode/addons/a11y/src/components/A11YPanel.stories.tsxcode/addons/a11y/src/components/A11YPanel.test.tsxcode/addons/a11y/src/components/A11YPanel.tsxcode/addons/a11y/src/components/A11yContext.test.tsxcode/addons/a11y/src/components/A11yContext.tsxcode/addons/a11y/src/components/Report/Details.tsxcode/addons/a11y/src/components/Report/Report.stories.tsxcode/addons/a11y/src/components/Report/Report.tsxcode/addons/a11y/src/components/Tabs.tsxcode/addons/a11y/src/components/TestDiscrepancyMessage.stories.tsxcode/addons/a11y/src/components/TestDiscrepancyMessage.tsxcode/addons/a11y/src/components/VisionSimulator.stories.tsxcode/addons/a11y/src/components/VisionSimulator.tsxcode/addons/a11y/src/index.tscode/addons/a11y/src/manager.test.tsxcode/addons/a11y/src/manager.tsxcode/addons/a11y/src/postinstall.tscode/addons/a11y/src/preview.test.tsxcode/addons/a11y/src/preview.tsxcode/addons/a11y/src/types.tscode/addons/a11y/src/withVisionSimulator.tscode/addons/a11y/vitest.config.tscode/addons/docs/build-config.tscode/addons/docs/src/blocks.tscode/addons/docs/src/blocks/blocks/Anchor.stories.tsxcode/addons/docs/src/blocks/blocks/ArgTypes.stories.tsxcode/addons/docs/src/blocks/blocks/ArgTypes.tsxcode/addons/docs/src/blocks/blocks/Canvas.stories.tsxcode/addons/docs/src/blocks/blocks/Canvas.tsxcode/addons/docs/src/blocks/blocks/Controls.stories.tsxcode/addons/docs/src/blocks/blocks/Controls.tsxcode/addons/docs/src/blocks/blocks/Description.stories.tsxcode/addons/docs/src/blocks/blocks/Description.tsxcode/addons/docs/src/blocks/blocks/Docs.tsxcode/addons/docs/src/blocks/blocks/DocsContainer.tsxcode/addons/docs/src/blocks/blocks/DocsPage.stories.tsxcode/addons/docs/src/blocks/blocks/DocsPage.test.tscode/addons/docs/src/blocks/blocks/DocsPage.tsxcode/addons/docs/src/blocks/blocks/DocsStory.tsxcode/addons/docs/src/blocks/blocks/Heading.tsxcode/addons/docs/src/blocks/blocks/Markdown.stories.tsxcode/addons/docs/src/blocks/blocks/Markdown.tsxcode/addons/docs/src/blocks/blocks/Meta.tsxcode/addons/docs/src/blocks/blocks/Primary.stories.tsxcode/addons/docs/src/blocks/blocks/Primary.tsxcode/addons/docs/src/blocks/blocks/Source.stories.tsxcode/addons/docs/src/blocks/blocks/Source.tsxcode/addons/docs/src/blocks/blocks/Stories.stories.tsxcode/addons/docs/src/blocks/blocks/Stories.tsxcode/addons/docs/src/blocks/blocks/Story.stories.tsxcode/addons/docs/src/blocks/blocks/Story.tsxcode/addons/docs/src/blocks/blocks/Subheading.tsxcode/addons/docs/src/blocks/blocks/Subtitle.stories.tsxcode/addons/docs/src/blocks/blocks/Subtitle.tsxcode/addons/docs/src/blocks/blocks/Title.stories.tsxcode/addons/docs/src/blocks/blocks/Title.tsxcode/addons/docs/src/blocks/blocks/Unstyled.tsxcode/addons/docs/src/blocks/blocks/Wrapper.tsxcode/addons/docs/src/blocks/blocks/external/ExternalDocs.tsxcode/addons/docs/src/blocks/blocks/external/ExternalDocsContainer.tsxcode/addons/docs/src/blocks/blocks/external/ExternalPreview.tscode/addons/docs/src/blocks/blocks/index.tscode/addons/docs/src/blocks/blocks/mdx.tsxcode/addons/docs/src/blocks/blocks/useOf.tscode/addons/docs/src/blocks/blocks/usePrimaryStory.test.tsxcode/addons/docs/src/blocks/blocks/usePrimaryStory.tscode/addons/docs/src/blocks/blocks/useStory.tscode/addons/docs/src/blocks/blocks/utils.tscode/addons/docs/src/blocks/component-overrides.stories.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgControl.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgJsDoc.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgRow.stories.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgRow.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgValue.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgsTable.stories.tsxcode/addons/docs/src/blocks/components/ArgsTable/ArgsTable.tsxcode/addons/docs/src/blocks/components/ArgsTable/SectionRow.stories.tsxcode/addons/docs/src/blocks/components/ArgsTable/TabbedArgsTable.stories.tsxcode/addons/docs/src/blocks/components/ArgsTable/TabbedArgsTable.tsxcode/addons/docs/src/blocks/components/ArgsTable/index.tscode/addons/docs/src/blocks/components/ColorPalette.stories.tsxcode/addons/docs/src/blocks/components/ColorPalette.tsxcode/addons/docs/src/blocks/components/DocsPage.stories.tsxcode/addons/docs/src/blocks/components/DocsPage.test.tsxcode/addons/docs/src/blocks/components/EmptyBlock.stories.tsxcode/addons/docs/src/blocks/components/IconGallery.stories.tsxcode/addons/docs/src/blocks/components/IconGallery.tsxcode/addons/docs/src/blocks/components/Preview.stories.tsxcode/addons/docs/src/blocks/components/Preview.tsxcode/addons/docs/src/blocks/components/Source.stories.tsxcode/addons/docs/src/blocks/components/Source.tsxcode/addons/docs/src/blocks/components/Story.stories.tsxcode/addons/docs/src/blocks/components/Story.tsxcode/addons/docs/src/blocks/components/TableOfContents.stories.tsxcode/addons/docs/src/blocks/components/Title.stories.tscode/addons/docs/src/blocks/components/Toolbar.tsxcode/addons/docs/src/blocks/components/Typeset.stories.tsxcode/addons/docs/src/blocks/components/Typeset.tsxcode/addons/docs/src/blocks/components/index.tscode/addons/docs/src/blocks/controls/Boolean.stories.tsxcode/addons/docs/src/blocks/controls/Boolean.tsxcode/addons/docs/src/blocks/controls/Color.stories.tsxcode/addons/docs/src/blocks/controls/Color.tsxcode/addons/docs/src/blocks/controls/Date.stories.tsxcode/addons/docs/src/blocks/controls/Date.test.tscode/addons/docs/src/blocks/controls/Date.tsxcode/addons/docs/src/blocks/controls/Files.stories.tsxcode/addons/docs/src/blocks/controls/Files.tsxcode/addons/docs/src/blocks/controls/Number.stories.tsxcode/addons/docs/src/blocks/controls/Number.tsxcode/addons/docs/src/blocks/controls/Object.stories.tsxcode/addons/docs/src/blocks/controls/Object.tsxcode/addons/docs/src/blocks/controls/Range.stories.tsxcode/addons/docs/src/blocks/controls/Range.tsxcode/addons/docs/src/blocks/controls/Text.stories.tsxcode/addons/docs/src/blocks/controls/Text.tsxcode/addons/docs/src/blocks/controls/helpers.test.tscode/addons/docs/src/blocks/controls/index.tsxcode/addons/docs/src/blocks/controls/options/CheckOptions.stories.tsxcode/addons/docs/src/blocks/controls/options/Checkbox.tsxcode/addons/docs/src/blocks/controls/options/Options.tsxcode/addons/docs/src/blocks/controls/options/Radio.tsxcode/addons/docs/src/blocks/controls/options/RadioOptions.stories.tsxcode/addons/docs/src/blocks/controls/options/Select.tsxcode/addons/docs/src/blocks/controls/options/SelectOptions.stories.tsxcode/addons/docs/src/blocks/controls/options/helpers.tscode/addons/docs/src/blocks/controls/options/index.tscode/addons/docs/src/blocks/controls/react-editable-json-tree/JsonNodes.tsxcode/addons/docs/src/blocks/controls/react-editable-json-tree/index.tsxcode/addons/docs/src/blocks/controls/types.tscode/addons/docs/src/blocks/examples/ArgTypesParameters.stories.tsxcode/addons/docs/src/blocks/examples/ArgTypesWithSubcomponentsParameters.stories.tsxcode/addons/docs/src/blocks/examples/Button.stories.tsxcode/addons/docs/src/blocks/examples/ButtonNoAutodocs.stories.tsxcode/addons/docs/src/blocks/examples/ButtonReadonly.stories.tsxcode/addons/docs/src/blocks/examples/ButtonSomeAutodocs.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaDescriptionAsBoth.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaDescriptionAsComment.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaDescriptionAsParameter.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaSubtitleAsBoth.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaSubtitleAsComponentSubtitle.stories.tsxcode/addons/docs/src/blocks/examples/ButtonWithMetaSubtitleAsDocsSubtitle.stories.tsxcode/addons/docs/src/blocks/examples/CanvasParameters.stories.tsxcode/addons/docs/src/blocks/examples/ControlsParameters.stories.tsxcode/addons/docs/src/blocks/examples/ControlsWithSubcomponentsParameters.stories.tsxcode/addons/docs/src/blocks/examples/DocsPageParameters.stories.tsxcode/addons/docs/src/blocks/examples/EmptyArgTypes.stories.tsxcode/addons/docs/src/blocks/examples/SourceParameters.stories.tsxcode/addons/docs/src/blocks/examples/StoriesParameters.stories.tsxcode/addons/docs/src/blocks/examples/StoryParameters.stories.tsxcode/addons/docs/src/compiler/index.test.tscode/addons/docs/src/compiler/index.tscode/addons/docs/src/index.tscode/addons/docs/src/manager.tsxcode/addons/docs/src/manifest.test.tscode/addons/docs/src/mdx-loader.tscode/addons/docs/src/mdx-plugin.tscode/addons/docs/src/preset.tscode/addons/docs/src/preview.tscode/addons/docs/src/types.tscode/addons/docs/vitest.config.tscode/addons/links/build-config.tscode/addons/links/src/index.tscode/addons/links/src/manager.tscode/addons/links/src/preview.tscode/addons/links/src/react/components/link.test.tsxcode/addons/links/src/react/components/link.tsxcode/addons/links/src/react/index.tscode/addons/links/src/utils.test.tscode/addons/links/src/utils.tscode/addons/links/vitest.config.tscode/addons/onboarding/build-config.tscode/addons/onboarding/example-stories/Button.stories.tsxcode/addons/onboarding/src/Onboarding.tsxcode/addons/onboarding/src/Survey.tsxcode/addons/onboarding/src/components/Confetti/Confetti.stories.tsxcode/addons/onboarding/src/components/List/List.stories.tsxcode/addons/onboarding/src/components/List/List.tsxcode/addons/onboarding/src/components/List/ListItem/ListItem.tsxcode/addons/onboarding/src/features/IntentSurvey/IntentSurvey.stories.tsxcode/addons/onboarding/src/features/IntentSurvey/IntentSurvey.tsxcode/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsxcode/addons/onboarding/src/manager.tsxcode/addons/onboarding/src/preset.tscode/addons/onboarding/vitest.config.tscode/addons/pseudo-states/build-config.tscode/addons/pseudo-states/src/index.tscode/addons/pseudo-states/src/manager.tscode/addons/pseudo-states/src/manager/PseudoStateTool.tsxcode/addons/pseudo-states/src/preview.tscode/addons/pseudo-states/src/preview/rewriteStyleSheet.test.tscode/addons/pseudo-states/src/preview/rewriteStyleSheet.tscode/addons/pseudo-states/src/preview/splitSelectors.test.tscode/addons/pseudo-states/src/preview/withPseudoState.tscode/addons/pseudo-states/src/stories/Button.stories.tsxcode/addons/pseudo-states/src/stories/CSSAtRules.stories.tsxcode/addons/pseudo-states/src/stories/CustomElement.stories.tsxcode/addons/pseudo-states/src/stories/CustomElementNested.stories.tsxcode/addons/pseudo-states/src/stories/CustomElementNested.tsxcode/addons/pseudo-states/src/stories/Input.stories.tsxcode/addons/pseudo-states/src/stories/NestedRules.stories.tsxcode/addons/pseudo-states/src/stories/Portal.stories.tsxcode/addons/pseudo-states/src/stories/ShadowRoot.stories.tsxcode/addons/pseudo-states/src/stories/ShadowRootWithPart.stories.tsxcode/addons/pseudo-states/src/types.test-d.tscode/addons/pseudo-states/src/types.tscode/addons/pseudo-states/vitest.config.tscode/addons/themes/build-config.tscode/addons/themes/src/constants.tscode/addons/themes/src/decorators/class-name.decorator.tsxcode/addons/themes/src/decorators/data-attribute.decorator.tsxcode/addons/themes/src/decorators/helpers.tscode/addons/themes/src/decorators/index.tscode/addons/themes/src/decorators/provider.decorator.tsxcode/addons/themes/src/index.tscode/addons/themes/src/manager.tsxcode/addons/themes/src/preview.tscode/addons/themes/src/theme-switcher.tsxcode/addons/themes/vitest.config.tscode/addons/vitest/build-config.tscode/addons/vitest/src/components/Description.tsxcode/addons/vitest/src/components/GlobalErrorModal.stories.tsxcode/addons/vitest/src/components/GlobalErrorModal.tsxcode/addons/vitest/src/components/RelativeTime.stories.tsxcode/addons/vitest/src/components/SidebarContextMenu.tsxcode/addons/vitest/src/components/TestProviderRender.stories.tsxcode/addons/vitest/src/components/TestProviderRender.tsxcode/addons/vitest/src/components/TestStatusIcon.stories.tsxcode/addons/vitest/src/constants.tscode/addons/vitest/src/logger.tscode/addons/vitest/src/manager-store.mock.tscode/addons/vitest/src/manager-store.tscode/addons/vitest/src/manager.tsxcode/addons/vitest/src/node/boot-test-runner.test.tscode/addons/vitest/src/node/boot-test-runner.tscode/addons/vitest/src/node/coverage-reporter.tscode/addons/vitest/src/node/reporter.tscode/addons/vitest/src/node/test-manager.test.tscode/addons/vitest/src/node/test-manager.tscode/addons/vitest/src/node/vitest-manager.tscode/addons/vitest/src/node/vitest.tscode/addons/vitest/src/postinstall.test.tscode/addons/vitest/src/postinstall.tscode/addons/vitest/src/preset.tscode/addons/vitest/src/updateVitestFile.config.3.2.test.tscode/addons/vitest/src/updateVitestFile.config.4.test.tscode/addons/vitest/src/updateVitestFile.config.test.tscode/addons/vitest/src/updateVitestFile.config.workspace.test.tscode/addons/vitest/src/updateVitestFile.test.tscode/addons/vitest/src/use-test-provider-state.tscode/addons/vitest/src/utils.tscode/addons/vitest/src/vitest-plugin/index.tscode/addons/vitest/src/vitest-plugin/setup-file.test.tscode/addons/vitest/src/vitest-plugin/setup-file.tscode/addons/vitest/src/vitest-plugin/test-utils.tscode/addons/vitest/src/vitest-plugin/utils.tscode/addons/vitest/src/vitest-plugin/viewports.test.tscode/addons/vitest/vitest.config.tscode/builders/builder-vite/build-config.tscode/builders/builder-vite/src/build.tscode/builders/builder-vite/src/codegen-importfn-script.test.tscode/builders/builder-vite/src/codegen-importfn-script.tscode/builders/builder-vite/src/codegen-modern-iframe-script.test.tscode/builders/builder-vite/src/codegen-modern-iframe-script.tscode/builders/builder-vite/src/codegen-project-annotations.tscode/builders/builder-vite/src/index.test.tscode/builders/builder-vite/src/index.tscode/builders/builder-vite/src/plugins/code-generator-plugin.tscode/builders/builder-vite/src/plugins/index.tscode/builders/builder-vite/src/plugins/storybook-entry-plugin.tscode/builders/builder-vite/src/plugins/storybook-external-globals-plugin.test.tscode/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.test.tscode/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.tscode/builders/builder-vite/src/plugins/storybook-project-annotations-plugin.tscode/builders/builder-vite/src/plugins/storybook-runtime-plugin.tscode/builders/builder-vite/src/plugins/vite-mock/plugin.tscode/builders/builder-vite/src/plugins/webpack-stats-plugin.tscode/builders/builder-vite/src/preset.tscode/builders/builder-vite/src/transform-iframe-html.tscode/builders/builder-vite/src/utils/build-module-graph.test.tscode/builders/builder-vite/src/utils/has-vite-plugins.test.tscode/builders/builder-vite/src/utils/process-preview-annotation.test.tscode/builders/builder-vite/src/utils/without-vite-plugins.test.tscode/builders/builder-vite/src/vite-config.test.tscode/builders/builder-vite/src/vite-config.tscode/builders/builder-vite/src/vite-server.tscode/builders/builder-vite/vitest.config.tscode/builders/builder-webpack5/build-config.tscode/builders/builder-webpack5/src/index.ts
049dcfa to
56d4a80
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
code/core/src/common/js-package-manager/Yarn2Proxy.test.ts (1)
21-21:⚠️ Potential issue | 🟡 MinorMismatch between import specifier and mock target.
The import on line 5 uses
'../utils/command.ts'with the explicit extension, but the mock target on line 21 still uses the extensionless path'../utils/command'. This inconsistency may cause the mock to fail to intercept the import correctly.Other test files in this PR (e.g.,
PNPMProxy.test.ts,Yarn1Proxy.test.ts,NPMProxy.test.ts) use the consistent pattern withvi.mock(import('../utils/command.ts'), { spy: true }).🔧 Proposed fix to align mock target with import
-vi.mock('../utils/command', { spy: true }); +vi.mock(import('../utils/command.ts'), { spy: true });🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@code/core/src/common/js-package-manager/Yarn2Proxy.test.ts` at line 21, The mock target path for vi.mock doesn't match the test import's specifier; update the mock to use the exact same module specifier used in the import (use the explicit extension). Replace the current vi.mock('../utils/command', { spy: true }) with the consistent form used elsewhere, e.g. vi.mock(import('../utils/command.ts'), { spy: true }) so the mock correctly intercepts imports of the module referenced by the tests.
🧹 Nitpick comments (1)
code/core/src/common/utils/setup-addon-in-config.test.ts (1)
7-10: Alignvi.mock()specifiers with repo patterns for consistency.Lines 7–10 import with
.tsextensions, but Lines 13–15 use extensionless paths invi.mock(). While Vite normalizes both forms to the same module, this repository consistently uses extensionless paths in mocks. Aligning to the established pattern improves clarity and consistency.Note:
./setup-addon-in-config.tsis intentionally not mocked (it's the unit under test).Suggested improvement
-vi.mock('./sync-main-preview-addons', { spy: true }); -vi.mock('./wrap-getAbsolutePath-utils', { spy: true }); -vi.mock('./load-main-config', { spy: true }); +vi.mock('./sync-main-preview-addons.ts', { spy: true }); +vi.mock('./wrap-getAbsolutePath-utils.ts', { spy: true }); +vi.mock('./load-main-config.ts', { spy: true });🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@code/core/src/common/utils/setup-addon-in-config.test.ts` around lines 7 - 10, The imports at the top use .ts extensions (loadMainConfigModule, setupAddonInConfig, syncModule, wrapUtils) but mocks later use extensionless module specifiers; update the import specifiers for loadMainConfigModule, syncModule and wrapUtils to use extensionless paths (e.g. './load-main-config', './sync-main-preview-addons', './wrap-getAbsolutePath-utils') to match the repo mock pattern while leaving setupAddonInConfig untouched since it’s the unit under test, and ensure vi.mock calls continue to reference the same extensionless strings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@code/core/src/common/utils/resolve-path-in-sb-cache.test.ts`:
- Around line 7-8: Update the mock specifier so it exactly matches the import
used in the test: change the vi.mock call that targets '../versions' to use the
same module specifier string as the import (../versions.ts) so the mock is
actually applied to the imported module (affects the vi.mock for the module
providing versions used by resolvePathInStorybookCache).
---
Outside diff comments:
In `@code/core/src/common/js-package-manager/Yarn2Proxy.test.ts`:
- Line 21: The mock target path for vi.mock doesn't match the test import's
specifier; update the mock to use the exact same module specifier used in the
import (use the explicit extension). Replace the current
vi.mock('../utils/command', { spy: true }) with the consistent form used
elsewhere, e.g. vi.mock(import('../utils/command.ts'), { spy: true }) so the
mock correctly intercepts imports of the module referenced by the tests.
---
Nitpick comments:
In `@code/core/src/common/utils/setup-addon-in-config.test.ts`:
- Around line 7-10: The imports at the top use .ts extensions
(loadMainConfigModule, setupAddonInConfig, syncModule, wrapUtils) but mocks
later use extensionless module specifiers; update the import specifiers for
loadMainConfigModule, syncModule and wrapUtils to use extensionless paths (e.g.
'./load-main-config', './sync-main-preview-addons',
'./wrap-getAbsolutePath-utils') to match the repo mock pattern while leaving
setupAddonInConfig untouched since it’s the unit under test, and ensure vi.mock
calls continue to reference the same extensionless strings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c050730f-c3ed-4e96-8924-bcb926d707d2
📒 Files selected for processing (300)
AGENTS.mdcode/.eslintrc.jscode/.storybook/bench/bench.stories.tsxcode/.storybook/preview.tsxcode/.storybook/storybook.setup.tscode/addons/a11y/build-config.tscode/addons/a11y/src/a11yRunner.test.tscode/addons/a11y/src/a11yRunner.tscode/addons/a11y/src/a11yRunnerUtils.test.tscode/addons/a11y/src/a11yRunnerUtils.tscode/addons/a11y/src/axeRuleMappingHelper.tscode/addons/a11y/src/components/A11YPanel.stories.tsxcode/addons/a11y/src/components/A11YPanel.test.tsxcode/addons/a11y/src/components/A11YPanel.tsxcode/addons/a11y/src/components/A11yContext.test.tsxcode/addons/a11y/src/components/A11yContext.tsxcode/addons/a11y/src/components/Report/Details.tsxcode/addons/a11y/src/components/Report/Report.stories.tsxcode/addons/a11y/src/components/Report/Report.tsxcode/addons/a11y/src/components/Tabs.tsxcode/addons/a11y/src/components/TestDiscrepancyMessage.stories.tsxcode/addons/a11y/src/components/TestDiscrepancyMessage.tsxcode/addons/a11y/src/components/VisionSimulator.stories.tsxcode/addons/a11y/src/components/VisionSimulator.tsxcode/addons/a11y/src/index.tscode/addons/a11y/src/manager.test.tsxcode/addons/a11y/src/manager.tsxcode/addons/a11y/src/postinstall.tscode/addons/a11y/src/preview.test.tsxcode/addons/a11y/src/preview.tsxcode/addons/a11y/src/types.tscode/addons/a11y/src/withVisionSimulator.tscode/addons/a11y/vitest.config.tscode/addons/links/build-config.tscode/addons/links/src/index.tscode/addons/links/src/manager.tscode/addons/links/src/preview.tscode/addons/links/src/react/components/link.test.tsxcode/addons/links/src/react/components/link.tsxcode/addons/links/src/react/index.tscode/addons/links/src/utils.test.tscode/addons/links/src/utils.tscode/addons/links/vitest.config.tscode/addons/onboarding/build-config.tscode/addons/onboarding/example-stories/Button.stories.tsxcode/addons/onboarding/src/Onboarding.tsxcode/addons/onboarding/src/Survey.tsxcode/addons/onboarding/src/components/Confetti/Confetti.stories.tsxcode/addons/onboarding/src/components/List/List.stories.tsxcode/addons/onboarding/src/components/List/List.tsxcode/addons/onboarding/src/components/List/ListItem/ListItem.tsxcode/addons/onboarding/src/features/IntentSurvey/IntentSurvey.stories.tsxcode/addons/onboarding/src/features/IntentSurvey/IntentSurvey.tsxcode/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsxcode/addons/onboarding/src/manager.tsxcode/addons/onboarding/src/preset.tscode/addons/onboarding/vitest.config.tscode/addons/pseudo-states/build-config.tscode/addons/pseudo-states/src/index.tscode/addons/pseudo-states/src/manager.tscode/addons/pseudo-states/src/manager/PseudoStateTool.tsxcode/addons/pseudo-states/src/preview.tscode/addons/pseudo-states/src/preview/rewriteStyleSheet.test.tscode/addons/pseudo-states/src/preview/rewriteStyleSheet.tscode/addons/pseudo-states/src/preview/splitSelectors.test.tscode/addons/pseudo-states/src/preview/withPseudoState.tscode/addons/pseudo-states/src/stories/Button.stories.tsxcode/addons/pseudo-states/src/stories/CSSAtRules.stories.tsxcode/addons/pseudo-states/src/stories/CustomElement.stories.tsxcode/addons/pseudo-states/src/stories/CustomElementNested.stories.tsxcode/addons/pseudo-states/src/stories/CustomElementNested.tsxcode/addons/pseudo-states/src/stories/Input.stories.tsxcode/addons/pseudo-states/src/stories/NestedRules.stories.tsxcode/addons/pseudo-states/src/stories/Portal.stories.tsxcode/addons/pseudo-states/src/stories/ShadowRoot.stories.tsxcode/addons/pseudo-states/src/stories/ShadowRootWithPart.stories.tsxcode/addons/pseudo-states/src/types.test-d.tscode/addons/pseudo-states/src/types.tscode/addons/pseudo-states/vitest.config.tscode/addons/themes/build-config.tscode/addons/themes/src/constants.tscode/addons/themes/src/decorators/class-name.decorator.tsxcode/addons/themes/src/decorators/data-attribute.decorator.tsxcode/addons/themes/src/decorators/helpers.tscode/addons/themes/src/decorators/index.tscode/addons/themes/src/decorators/provider.decorator.tsxcode/addons/themes/src/index.tscode/addons/themes/src/manager.tsxcode/addons/themes/src/preview.tscode/addons/themes/src/theme-switcher.tsxcode/addons/themes/vitest.config.tscode/addons/vitest/build-config.tscode/addons/vitest/src/components/Description.tsxcode/addons/vitest/src/components/GlobalErrorModal.stories.tsxcode/addons/vitest/src/components/GlobalErrorModal.tsxcode/addons/vitest/src/components/RelativeTime.stories.tsxcode/addons/vitest/src/components/SidebarContextMenu.tsxcode/addons/vitest/src/components/TestProviderRender.stories.tsxcode/addons/vitest/src/components/TestProviderRender.tsxcode/addons/vitest/src/components/TestStatusIcon.stories.tsxcode/addons/vitest/src/constants.tscode/addons/vitest/src/logger.tscode/addons/vitest/src/manager-store.mock.tscode/addons/vitest/src/manager-store.tscode/addons/vitest/src/manager.tsxcode/addons/vitest/src/node/boot-test-runner.test.tscode/addons/vitest/src/node/boot-test-runner.tscode/addons/vitest/src/node/coverage-reporter.tscode/addons/vitest/src/node/reporter.tscode/addons/vitest/src/node/test-manager.test.tscode/addons/vitest/src/node/test-manager.tscode/addons/vitest/src/node/vitest-manager.tscode/addons/vitest/src/node/vitest.tscode/addons/vitest/src/postinstall.test.tscode/addons/vitest/src/postinstall.tscode/addons/vitest/src/preset.tscode/addons/vitest/src/updateVitestFile.config.3.2.test.tscode/addons/vitest/src/updateVitestFile.config.4.test.tscode/addons/vitest/src/updateVitestFile.config.test.tscode/addons/vitest/src/updateVitestFile.config.workspace.test.tscode/addons/vitest/src/updateVitestFile.test.tscode/addons/vitest/src/use-test-provider-state.tscode/addons/vitest/src/utils.tscode/addons/vitest/src/vitest-plugin/index.tscode/addons/vitest/src/vitest-plugin/setup-file.test.tscode/addons/vitest/src/vitest-plugin/setup-file.tscode/addons/vitest/src/vitest-plugin/test-utils.tscode/addons/vitest/src/vitest-plugin/utils.tscode/addons/vitest/src/vitest-plugin/viewports.test.tscode/addons/vitest/vitest.config.tscode/builders/builder-vite/build-config.tscode/builders/builder-vite/src/build.tscode/builders/builder-vite/src/codegen-importfn-script.test.tscode/builders/builder-vite/src/codegen-importfn-script.tscode/builders/builder-vite/src/codegen-modern-iframe-script.test.tscode/builders/builder-vite/src/codegen-modern-iframe-script.tscode/builders/builder-vite/src/codegen-project-annotations.tscode/builders/builder-vite/src/index.test.tscode/builders/builder-vite/src/index.tscode/builders/builder-vite/src/plugins/code-generator-plugin.tscode/builders/builder-vite/src/plugins/index.tscode/builders/builder-vite/src/plugins/storybook-entry-plugin.tscode/builders/builder-vite/src/plugins/storybook-external-globals-plugin.test.tscode/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.test.tscode/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.tscode/builders/builder-vite/src/plugins/storybook-project-annotations-plugin.tscode/builders/builder-vite/src/plugins/storybook-runtime-plugin.tscode/builders/builder-vite/src/plugins/vite-mock/plugin.tscode/builders/builder-vite/src/plugins/webpack-stats-plugin.tscode/builders/builder-vite/src/preset.tscode/builders/builder-vite/src/transform-iframe-html.tscode/builders/builder-vite/src/utils/build-module-graph.test.tscode/builders/builder-vite/src/utils/has-vite-plugins.test.tscode/builders/builder-vite/src/utils/process-preview-annotation.test.tscode/builders/builder-vite/src/utils/without-vite-plugins.test.tscode/builders/builder-vite/src/vite-config.test.tscode/builders/builder-vite/src/vite-config.tscode/builders/builder-vite/src/vite-server.tscode/builders/builder-vite/vitest.config.tscode/builders/builder-webpack5/build-config.tscode/builders/builder-webpack5/src/index.tscode/builders/builder-webpack5/src/presets/custom-webpack-preset.tscode/builders/builder-webpack5/src/presets/preview-preset.tscode/builders/builder-webpack5/src/preview/iframe-webpack.config.tscode/builders/builder-webpack5/src/preview/virtual-module-mapping.tscode/builders/builder-webpack5/vitest.config.tscode/core/build-config.tscode/core/scripts/generate-source-files.tscode/core/src/__tests/preview-errors.test.tscode/core/src/__tests/server-errors.test.tscode/core/src/__tests/storybook-error.test.tscode/core/src/actions/addArgs.tscode/core/src/actions/addArgsHelpers.test.tscode/core/src/actions/addArgsHelpers.tscode/core/src/actions/components/ActionLogger/index.tsxcode/core/src/actions/components/Title.tsxcode/core/src/actions/containers/ActionLogger/index.tsxcode/core/src/actions/decorator.tscode/core/src/actions/index.tscode/core/src/actions/loaders.tscode/core/src/actions/manager.tsxcode/core/src/actions/models/ActionDisplay.tscode/core/src/actions/models/ActionsFunction.tscode/core/src/actions/models/ActionsMap.tscode/core/src/actions/models/HandlerFunction.test-d.tscode/core/src/actions/models/index.tscode/core/src/actions/preview.tscode/core/src/actions/runtime/action.tscode/core/src/actions/runtime/actions.tscode/core/src/actions/runtime/configureActions.tscode/core/src/actions/runtime/index.tscode/core/src/babel/expression-resolver.test.tscode/core/src/babel/index.tscode/core/src/babel/vitest-config-helpers.test.tscode/core/src/babel/vitest-config-helpers.tscode/core/src/backgrounds/components/Tool.tsxcode/core/src/backgrounds/decorator.tscode/core/src/backgrounds/defaults.tscode/core/src/backgrounds/manager.tsxcode/core/src/backgrounds/preview.tscode/core/src/backgrounds/types.tscode/core/src/bin/core.tscode/core/src/bin/dispatcher.tscode/core/src/bin/loader.test.tscode/core/src/bin/loader.tscode/core/src/builder-manager/index.tscode/core/src/builder-manager/utils/data.tscode/core/src/builder-manager/utils/files.test.tscode/core/src/builder-manager/utils/files.tscode/core/src/builder-manager/utils/template.tscode/core/src/channels/index.test.tscode/core/src/channels/index.tscode/core/src/channels/main.tscode/core/src/channels/postmessage/index.tscode/core/src/channels/websocket/index.tscode/core/src/cli/AddonVitestService.constants.tscode/core/src/cli/AddonVitestService.test.tscode/core/src/cli/AddonVitestService.tscode/core/src/cli/NpmOptions.tscode/core/src/cli/dirs.tscode/core/src/cli/eslintPlugin.test.tscode/core/src/cli/eslintPlugin.tscode/core/src/cli/globalSettings.test.tscode/core/src/cli/globalSettings.tscode/core/src/cli/helpers.test.tscode/core/src/cli/helpers.tscode/core/src/cli/index.tscode/core/src/client-logger/index.test.tscode/core/src/common/config.test.tscode/core/src/common/index.tscode/core/src/common/js-package-manager/BUNProxy.tscode/core/src/common/js-package-manager/JsPackageManager.test.tscode/core/src/common/js-package-manager/JsPackageManager.tscode/core/src/common/js-package-manager/JsPackageManagerFactory.test.tscode/core/src/common/js-package-manager/JsPackageManagerFactory.tscode/core/src/common/js-package-manager/NPMProxy.test.tscode/core/src/common/js-package-manager/NPMProxy.tscode/core/src/common/js-package-manager/PNPMProxy.test.tscode/core/src/common/js-package-manager/PNPMProxy.tscode/core/src/common/js-package-manager/Yarn1Proxy.test.tscode/core/src/common/js-package-manager/Yarn1Proxy.tscode/core/src/common/js-package-manager/Yarn2Proxy.test.tscode/core/src/common/js-package-manager/Yarn2Proxy.tscode/core/src/common/js-package-manager/index.tscode/core/src/common/presets.test.tscode/core/src/common/presets.tscode/core/src/common/utils/__tests__/interpret-files.test.tscode/core/src/common/utils/__tests__/normalize-stories.test.tscode/core/src/common/utils/__tests__/paths.test.tscode/core/src/common/utils/__tests__/template.test.tscode/core/src/common/utils/cache.tscode/core/src/common/utils/cli.test.tscode/core/src/common/utils/cli.tscode/core/src/common/utils/envs.tscode/core/src/common/utils/file-cache.tscode/core/src/common/utils/formatter.test.tscode/core/src/common/utils/get-addon-annotations.test.tscode/core/src/common/utils/get-addon-annotations.tscode/core/src/common/utils/get-addon-names.test.tscode/core/src/common/utils/get-addon-names.tscode/core/src/common/utils/get-framework-name.test.tscode/core/src/common/utils/get-framework-name.tscode/core/src/common/utils/get-renderer-name.test.tscode/core/src/common/utils/get-renderer-name.tscode/core/src/common/utils/get-story-id.test.tscode/core/src/common/utils/get-story-id.tscode/core/src/common/utils/get-storybook-configuration.test.tscode/core/src/common/utils/get-storybook-info.tscode/core/src/common/utils/get-storybook-refs.test.tscode/core/src/common/utils/get-storybook-refs.tscode/core/src/common/utils/interpret-require.tscode/core/src/common/utils/load-main-config.tscode/core/src/common/utils/load-manager-or-addons-file.tscode/core/src/common/utils/load-preview-or-config-file.tscode/core/src/common/utils/normalize-path.test.tscode/core/src/common/utils/normalize-stories.tscode/core/src/common/utils/paths.tscode/core/src/common/utils/posix.test.tscode/core/src/common/utils/remove.tscode/core/src/common/utils/resolve-path-in-sb-cache.test.tscode/core/src/common/utils/resolve-path-in-sb-cache.tscode/core/src/common/utils/scan-and-transform-files.test.tscode/core/src/common/utils/scan-and-transform-files.tscode/core/src/common/utils/setup-addon-in-config.test.tscode/core/src/common/utils/setup-addon-in-config.tscode/core/src/common/utils/sync-main-preview-addons.test.tscode/core/src/common/utils/sync-main-preview-addons.tscode/core/src/common/utils/template.tscode/core/src/common/utils/transform-imports.test.tscode/core/src/common/utils/utils.test.tscode/core/src/common/utils/validate-config.test.tscode/core/src/common/utils/validate-config.tscode/core/src/common/utils/validate-configuration-files.tscode/core/src/common/utils/write-file-with-retry.test.tscode/core/src/component-testing/components/DetachedDebuggerMessage.tsxcode/core/src/component-testing/components/EmptyState.tsxcode/core/src/component-testing/components/Interaction.stories.tsxcode/core/src/component-testing/components/Interaction.tsxcode/core/src/component-testing/components/InteractionsPanel.stories.tsxcode/core/src/component-testing/components/InteractionsPanel.tsx
✅ Files skipped from review due to trivial changes (270)
- code/core/src/common/utils/resolve-path-in-sb-cache.ts
- code/addons/pseudo-states/src/manager/PseudoStateTool.tsx
- code/addons/links/src/manager.ts
- code/addons/links/src/react/index.ts
- code/core/src/common/utils/utils.test.ts
- code/core/src/common/utils/posix.test.ts
- code/core/src/common/utils/file-cache.ts
- code/core/src/common/utils/sync-main-preview-addons.test.ts
- code/core/src/common/utils/formatter.test.ts
- code/addons/a11y/src/types.ts
- code/addons/pseudo-states/src/preview.ts
- code/addons/pseudo-states/src/stories/Button.stories.tsx
- code/core/src/common/utils/get-storybook-refs.test.ts
- code/core/src/common/utils/cli.test.ts
- code/core/src/common/utils/get-addon-names.test.ts
- code/core/src/common/js-package-manager/index.ts
- code/core/src/common/js-package-manager/Yarn2Proxy.ts
- code/core/src/cli/helpers.test.ts
- code/addons/a11y/vitest.config.ts
- code/addons/pseudo-states/src/stories/CSSAtRules.stories.tsx
- code/core/src/common/js-package-manager/Yarn1Proxy.ts
- code/core/src/common/utils/remove.ts
- code/core/src/common/utils/load-preview-or-config-file.ts
- code/core/src/common/utils/setup-addon-in-config.ts
- code/addons/a11y/build-config.ts
- code/addons/onboarding/src/components/Confetti/Confetti.stories.tsx
- code/addons/a11y/src/components/VisionSimulator.tsx
- code/addons/a11y/src/components/TestDiscrepancyMessage.tsx
- code/addons/onboarding/src/preset.ts
- code/addons/links/src/utils.ts
- code/addons/onboarding/src/features/IntentSurvey/IntentSurvey.tsx
- code/addons/a11y/src/a11yRunner.test.ts
- code/addons/a11y/src/components/Report/Report.stories.tsx
- code/core/src/common/utils/get-renderer-name.ts
- code/core/src/common/utils/validate-config.ts
- code/core/src/common/utils/tests/interpret-files.test.ts
- code/addons/pseudo-states/src/stories/CustomElement.stories.tsx
- code/addons/pseudo-states/src/stories/Input.stories.tsx
- code/addons/a11y/src/components/Tabs.tsx
- code/addons/pseudo-states/src/stories/CustomElementNested.stories.tsx
- code/addons/links/src/preview.ts
- code/addons/onboarding/src/components/List/ListItem/ListItem.tsx
- code/core/src/common/utils/get-storybook-configuration.test.ts
- code/addons/onboarding/src/components/List/List.stories.tsx
- code/core/src/common/utils/sync-main-preview-addons.ts
- code/core/src/common/utils/get-storybook-info.ts
- code/addons/a11y/src/components/TestDiscrepancyMessage.stories.tsx
- code/addons/pseudo-states/src/preview/rewriteStyleSheet.ts
- code/addons/a11y/src/components/A11YPanel.stories.tsx
- code/addons/a11y/src/preview.test.tsx
- code/addons/pseudo-states/src/types.ts
- code/addons/themes/src/manager.tsx
- code/addons/a11y/src/components/VisionSimulator.stories.tsx
- code/addons/onboarding/vitest.config.ts
- code/addons/pseudo-states/src/preview/splitSelectors.test.ts
- code/addons/onboarding/src/Survey.tsx
- code/addons/links/src/react/components/link.test.tsx
- code/addons/themes/src/decorators/helpers.ts
- code/core/src/common/js-package-manager/BUNProxy.ts
- code/addons/a11y/src/components/A11YPanel.tsx
- code/addons/a11y/src/axeRuleMappingHelper.ts
- code/addons/onboarding/build-config.ts
- code/addons/themes/src/preview.ts
- code/addons/a11y/src/postinstall.ts
- code/addons/a11y/src/manager.test.tsx
- code/addons/vitest/src/components/GlobalErrorModal.tsx
- code/.storybook/storybook.setup.ts
- code/addons/a11y/src/a11yRunner.ts
- code/addons/a11y/src/a11yRunnerUtils.test.ts
- code/addons/pseudo-states/src/manager.ts
- code/addons/a11y/src/a11yRunnerUtils.ts
- code/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsx
- code/addons/onboarding/example-stories/Button.stories.tsx
- code/addons/pseudo-states/src/stories/Portal.stories.tsx
- code/addons/links/build-config.ts
- code/addons/themes/src/decorators/data-attribute.decorator.tsx
- code/addons/themes/src/decorators/index.ts
- code/addons/themes/build-config.ts
- code/addons/a11y/src/components/Report/Report.tsx
- code/addons/onboarding/src/features/IntentSurvey/IntentSurvey.stories.tsx
- code/addons/onboarding/src/components/List/List.tsx
- code/addons/pseudo-states/vitest.config.ts
- code/addons/vitest/src/components/GlobalErrorModal.stories.tsx
- code/addons/a11y/src/preview.tsx
- code/addons/pseudo-states/src/types.test-d.ts
- code/addons/links/src/react/components/link.tsx
- code/addons/themes/src/decorators/provider.decorator.tsx
- code/addons/vitest/build-config.ts
- code/addons/pseudo-states/src/preview/rewriteStyleSheet.test.ts
- code/addons/a11y/src/components/A11yContext.test.tsx
- code/addons/vitest/src/components/Description.tsx
- code/addons/themes/src/index.ts
- code/addons/pseudo-states/src/stories/NestedRules.stories.tsx
- code/addons/vitest/src/components/TestStatusIcon.stories.tsx
- code/addons/vitest/src/node/boot-test-runner.test.ts
- code/addons/links/vitest.config.ts
- code/addons/vitest/src/components/TestProviderRender.tsx
- code/addons/themes/vitest.config.ts
- code/addons/pseudo-states/src/preview/withPseudoState.ts
- code/.storybook/preview.tsx
- code/addons/a11y/src/withVisionSimulator.ts
- code/addons/pseudo-states/src/index.ts
- code/.storybook/bench/bench.stories.tsx
- code/addons/pseudo-states/src/stories/CustomElementNested.tsx
- code/addons/themes/src/decorators/class-name.decorator.tsx
- code/core/src/babel/vitest-config-helpers.ts
- code/addons/vitest/src/node/test-manager.ts
- code/addons/vitest/src/node/coverage-reporter.ts
- code/addons/vitest/src/manager-store.ts
- code/addons/vitest/src/updateVitestFile.test.ts
- code/addons/vitest/src/components/SidebarContextMenu.tsx
- code/addons/themes/src/constants.ts
- code/addons/vitest/src/components/TestProviderRender.stories.tsx
- code/core/src/actions/index.ts
- code/addons/vitest/src/node/test-manager.test.ts
- code/addons/vitest/src/node/vitest.ts
- code/addons/vitest/src/constants.ts
- code/addons/vitest/src/components/RelativeTime.stories.tsx
- code/addons/pseudo-states/build-config.ts
- code/addons/vitest/src/node/reporter.ts
- code/core/src/actions/loaders.ts
- code/addons/vitest/src/postinstall.test.ts
- code/addons/vitest/src/manager.tsx
- code/addons/vitest/src/updateVitestFile.config.workspace.test.ts
- code/addons/themes/src/theme-switcher.tsx
- code/addons/vitest/src/logger.ts
- code/addons/vitest/src/updateVitestFile.config.test.ts
- code/core/src/backgrounds/defaults.ts
- code/core/src/babel/expression-resolver.test.ts
- code/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.test.ts
- code/core/src/actions/addArgsHelpers.ts
- code/addons/vitest/vitest.config.ts
- code/core/src/actions/addArgs.ts
- code/core/src/backgrounds/components/Tool.tsx
- code/addons/a11y/src/components/A11YPanel.test.tsx
- code/addons/a11y/src/index.ts
- code/builders/builder-vite/src/plugins/storybook-project-annotations-plugin.ts
- code/addons/vitest/src/updateVitestFile.config.3.2.test.ts
- code/addons/vitest/src/preset.ts
- code/core/src/actions/runtime/action.ts
- code/core/src/actions/models/ActionsFunction.ts
- code/addons/vitest/src/node/boot-test-runner.ts
- code/builders/builder-vite/src/utils/build-module-graph.test.ts
- code/addons/vitest/src/updateVitestFile.config.4.test.ts
- code/core/src/__tests/server-errors.test.ts
- code/addons/a11y/src/manager.tsx
- code/builders/builder-webpack5/src/presets/preview-preset.ts
- code/builders/builder-vite/src/vite-config.test.ts
- code/builders/builder-vite/src/vite-config.ts
- code/addons/vitest/src/node/vitest-manager.ts
- code/core/src/actions/models/index.ts
- code/builders/builder-vite/src/plugins/storybook-runtime-plugin.ts
- code/core/src/actions/runtime/configureActions.ts
- code/core/src/backgrounds/manager.tsx
- code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts
- code/builders/builder-vite/src/index.ts
- code/core/src/actions/manager.tsx
- code/addons/vitest/src/vitest-plugin/index.ts
- code/core/src/actions/models/ActionsMap.ts
- code/addons/pseudo-states/src/stories/ShadowRoot.stories.tsx
- code/core/src/actions/addArgsHelpers.test.ts
- code/core/src/babel/vitest-config-helpers.test.ts
- code/addons/vitest/src/vitest-plugin/test-utils.ts
- code/builders/builder-vite/src/codegen-project-annotations.ts
- code/addons/onboarding/src/Onboarding.tsx
- code/addons/vitest/src/vitest-plugin/viewports.test.ts
- code/addons/vitest/src/use-test-provider-state.ts
- code/builders/builder-vite/src/preset.ts
- code/addons/links/src/index.ts
- code/builders/builder-vite/src/plugins/code-generator-plugin.ts
- code/builders/builder-vite/src/transform-iframe-html.ts
- code/builders/builder-webpack5/build-config.ts
- code/addons/vitest/src/vitest-plugin/setup-file.test.ts
- code/core/src/actions/components/Title.tsx
- code/builders/builder-vite/src/utils/without-vite-plugins.test.ts
- code/core/src/component-testing/components/Interaction.tsx
- code/core/src/__tests/storybook-error.test.ts
- code/core/src/channels/main.ts
- code/builders/builder-vite/src/codegen-importfn-script.ts
- code/addons/vitest/src/vitest-plugin/setup-file.ts
- code/core/src/builder-manager/utils/files.test.ts
- code/builders/builder-vite/src/codegen-modern-iframe-script.test.ts
- code/builders/builder-webpack5/src/index.ts
- code/builders/builder-webpack5/vitest.config.ts
- code/builders/builder-vite/src/build.ts
- code/builders/builder-vite/src/utils/has-vite-plugins.test.ts
- code/builders/builder-vite/build-config.ts
- code/builders/builder-webpack5/src/presets/custom-webpack-preset.ts
- code/addons/vitest/src/vitest-plugin/utils.ts
- code/addons/pseudo-states/src/stories/ShadowRootWithPart.stories.tsx
- code/builders/builder-vite/src/plugins/storybook-entry-plugin.ts
- code/core/src/channels/index.test.ts
- code/core/src/builder-manager/utils/files.ts
- code/core/src/channels/websocket/index.ts
- code/core/src/channels/postmessage/index.ts
- code/addons/vitest/src/manager-store.mock.ts
- code/addons/onboarding/src/manager.tsx
- code/addons/vitest/src/postinstall.ts
- code/core/src/bin/dispatcher.ts
- code/builders/builder-vite/src/plugins/webpack-stats-plugin.ts
- code/core/src/component-testing/components/EmptyState.tsx
- code/core/src/cli/dirs.ts
- code/builders/builder-vite/src/plugins/storybook-external-globals-plugin.test.ts
- code/builders/builder-vite/src/vite-server.ts
- code/builders/builder-vite/src/utils/process-preview-annotation.test.ts
- code/core/src/cli/NpmOptions.ts
- code/core/src/actions/runtime/actions.ts
- code/core/src/backgrounds/preview.ts
- code/core/src/actions/components/ActionLogger/index.tsx
- code/core/src/common/utils/scan-and-transform-files.ts
- code/core/src/cli/AddonVitestService.test.ts
- code/builders/builder-vite/src/plugins/vite-mock/plugin.ts
- code/core/src/__tests/preview-errors.test.ts
- code/builders/builder-vite/src/codegen-modern-iframe-script.ts
- code/core/src/actions/preview.ts
- code/core/src/actions/models/HandlerFunction.test-d.ts
- code/core/src/common/utils/validate-configuration-files.ts
- code/core/src/cli/AddonVitestService.constants.ts
- code/core/src/common/utils/get-renderer-name.test.ts
- code/core/src/common/js-package-manager/PNPMProxy.ts
- code/core/src/cli/helpers.ts
- code/core/src/common/utils/tests/paths.test.ts
- code/core/src/common/utils/template.ts
- code/core/src/builder-manager/utils/data.ts
- code/core/src/common/utils/get-addon-annotations.test.ts
- code/core/src/common/utils/validate-config.test.ts
- code/addons/links/src/utils.test.ts
- code/builders/builder-vite/src/codegen-importfn-script.test.ts
- code/core/build-config.ts
- code/core/src/actions/containers/ActionLogger/index.tsx
- code/core/src/cli/AddonVitestService.ts
- code/core/src/common/utils/normalize-stories.ts
- code/core/src/component-testing/components/Interaction.stories.tsx
- code/addons/a11y/src/components/A11yContext.tsx
- code/core/src/bin/loader.test.ts
- code/core/src/common/utils/scan-and-transform-files.test.ts
- code/core/src/client-logger/index.test.ts
- code/core/src/common/utils/get-framework-name.test.ts
- code/core/src/cli/eslintPlugin.test.ts
- code/core/src/common/utils/get-addon-annotations.ts
- code/core/src/common/js-package-manager/JsPackageManager.test.ts
- code/core/src/backgrounds/decorator.ts
- code/core/src/cli/globalSettings.test.ts
- code/core/src/common/utils/envs.ts
- code/core/src/common/utils/cache.ts
- code/core/src/common/utils/get-addon-names.ts
- code/builders/builder-vite/src/plugins/index.ts
- code/core/src/common/utils/get-framework-name.ts
- code/core/src/common/utils/tests/normalize-stories.test.ts
- code/core/src/common/config.test.ts
- code/core/src/common/presets.ts
- code/core/src/common/utils/write-file-with-retry.test.ts
- code/core/src/common/utils/normalize-path.test.ts
- code/core/src/common/presets.test.ts
- code/core/src/common/js-package-manager/JsPackageManagerFactory.test.ts
- code/core/src/common/utils/get-story-id.ts
- code/core/src/common/utils/load-manager-or-addons-file.ts
- code/core/src/common/utils/interpret-require.ts
- code/core/src/component-testing/components/InteractionsPanel.stories.tsx
- code/core/src/actions/runtime/index.ts
- code/core/src/common/js-package-manager/JsPackageManager.ts
- code/builders/builder-vite/src/plugins/storybook-optimize-deps-plugin.ts
- AGENTS.md
- code/core/src/common/utils/cli.ts
- code/core/src/component-testing/components/DetachedDebuggerMessage.tsx
- code/core/src/cli/index.ts
- code/addons/vitest/src/utils.ts
- code/core/src/common/utils/load-main-config.ts
- code/builders/builder-vite/vitest.config.ts
- code/core/src/common/utils/tests/template.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- code/.eslintrc.js
- code/addons/a11y/src/components/Report/Details.tsx
- code/builders/builder-vite/src/index.test.ts
56d4a80 to
ca67671
Compare
5550b30 to
2e035f0
Compare
2e035f0 to
d7078fe
Compare
d7078fe to
d2d1bc6
Compare
…nsions # Conflicts: # code/builders/builder-vite/src/index.ts # code/core/src/core-server/dev-server.ts # code/core/src/manager-api/modules/stories.ts # code/core/src/manager-api/tests/stories.test.ts # code/core/src/manager/components/preview/tools/addons.tsx # code/core/src/manager/components/preview/tools/menu.tsx # code/core/src/manager/components/sidebar/Filter.stories.tsx # code/core/src/manager/components/sidebar/Filter.story-helpers.tsx # code/core/src/manager/components/sidebar/Filter.tsx # code/core/src/manager/components/sidebar/FilterPanel.stories.tsx # code/core/src/manager/components/sidebar/Sidebar.tsx # code/core/src/manager/components/sidebar/TagsFilterPanel.tsx
|
View your CI Pipeline Execution ↗ for commit 4c95059
☁️ Nx Cloud last updated this comment at |
Closes #
What I did
Switched the import-extension migration over to the official
import-x/extensionsrule instead of a custom local rule, withfix: trueenabled so ESLint can rewrite missing relative TS/JS extensions automatically.This keeps package imports untouched via
ignorePackages: true, excludes consumer-facing surfaces entirely in ESLint config (docs,template,templates,__testfixtures__, and__mocks-ng-workspace__), and splits the change into two commits:lint --fixto rewrite importsThe earlier “reports but does not rewrite” behavior came from using the rule without its built-in
fix: trueoption.Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
Caution
This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!
No browser or sandbox validation was needed for this internal tooling migration.
Validation run from the first commit (
Build: Add explicit import extension guardrails):yarn --cwd scripts lint:js:cmd . --fix --quietyarn --cwd code lint:js:cmd . --fix --quietDocumentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal,ci:mergedorci:dailyGH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli-storybook/src/sandbox-templates.tsMake sure this PR contains one of the labels below:
Available labels
bug: Internal changes that fixes incorrect behavior.maintenance: User-facing maintenance tasks.dependencies: Upgrading (sometimes downgrading) dependencies.build: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup: Minor cleanup style change. Will not show up in release changelog.documentation: Documentation only changes. Will not show up in release changelog.feature request: Introducing a new feature.BREAKING CHANGE: Changes that break compatibility in some way with current major version.other: Changes that don't fit in the above categories.🦋 Canary release
This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the
@storybookjs/coreteam here.core team members can create a canary release here or locally with
gh workflow run --repo storybookjs/storybook publish.yml --field pr=<PR_NUMBER>