# Testing signals — storybookjs/storybook

> Canonical page: https://codevetter.com/unpack/storybook/testing-signals

# Testing signals — storybookjs/storybook

Scanned commit dc9b30e8fd8a71383ec01b9510f38bee51457e8a (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI definitions were inspected, not executed; no passing result or measured coverage is asserted. Vitest combines package projects with a separate browser-backed Storybook UI project. Inspected tests exercise rendering contracts, source mutation, token validation, and CLI attachment. Explicit exclusions and mocked boundaries limit what those tests demonstrate, and the inventory is bounded rather than exhaustive.
- The root Vitest configuration includes agent-eval and package projects, uses threads and Istanbul coverage, and excludes story files from coverage; the Storybook browser project is omitted on Windows CI. — [vitest.config.ts#L12-L33](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/vitest.config.ts#L12-L33) [vitest.config.ts#L35-L55](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/vitest.config.ts#L35-L55)
- The core Vitest project enables type checking, Node resolution for oxc modules, a Polka URL alias, and separate benchmark file inclusion. — [code/core/vitest.config.ts#L14-L44](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/vitest.config.ts#L14-L44)
- storybook-ui uses addon-vitest, includes the vitest tag, runs headless Chromium through Playwright, and loads the internal Storybook setup file. — [code/vitest.config.storybook.ts#L21-L31](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/vitest.config.storybook.ts#L21-L31) [code/vitest.config.storybook.ts#L48-L60](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/vitest.config.storybook.ts#L48-L60)
- Browser story tests explicitly exclude Zoom, docs blocks, benchmarks, and UseState names; SaveStory's Created play asserts a mocked createStory callback, but its meta carries !vitest. — [code/vitest.config.storybook.ts#L38-L47](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/vitest.config.storybook.ts#L38-L47) [code/core/src/controls/components/SaveStory.stories.tsx#L11-L23](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/controls/components/SaveStory.stories.tsx#L11-L23) [code/core/src/controls/components/SaveStory.stories.tsx#L38-L54](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/controls/components/SaveStory.stories.tsx#L38-L54)
- StoryRender unit tests use mock renderers/stores and assert autoplay true/false behavior; those assertions exercise lifecycle decisions rather than a real browser/framework rendering integration. — [code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts#L80-L112](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts#L80-L112)
- CSF arg-mutation tests load fixture files, parse their ASTs, apply updateArgsInCsfFile, and assert unsupported forms reject; token tests cover missing, empty, unequal-length, special-character, and Unicode inputs. — [code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts#L15-L38](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts#L15-L38) [code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts#L98-L107](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts#L98-L107) [code/core/src/core-server/utils/__tests__/validate-token.test.ts#L8-L53](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/core/src/core-server/utils/__tests__/validate-token.test.ts#L8-L53)
- tools-attach Playwright tests launch the compiled CLI and check required attach, auto attach, local interception, and silent no-instance fallback; live attachment cases skip against static builds. — [code/e2e-internal/tools-attach.spec.ts#L22-L44](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/e2e-internal/tools-attach.spec.ts#L22-L44) [code/e2e-internal/tools-attach.spec.ts#L68-L107](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/e2e-internal/tools-attach.spec.ts#L68-L107) [code/e2e-internal/tools-attach.spec.ts#L110-L146](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/code/e2e-internal/tools-attach.spec.ts#L110-L146)
- Fork CI defines Linux/Windows unit jobs and installs Chromium, while NX CI has only workflow_dispatch enabled and retains a job condition for PR/push/schedule events; these definitions were inspected without running them. — [.github/workflows/fork-checks.yml#L53-L80](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/.github/workflows/fork-checks.yml#L53-L80) [.github/workflows/nx.yml#L3-L7](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/.github/workflows/nx.yml#L3-L7) [.github/workflows/nx.yml#L18-L27](https://github.com/storybookjs/storybook/blob/dc9b30e8fd8a71383ec01b9510f38bee51457e8a/.github/workflows/nx.yml#L18-L27)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
