storybookjs/storybook

[Bug]: Cannot read properties of undefined (reading 'navigator') on node with globals

Open

#29.314 geöffnet am 9. Okt. 2024

Auf GitHub ansehen
 (7 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (10.058 Forks)batch import
addon: vitestbughelp wantedsev:S3

Repository-Metriken

Stars
 (89.909 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 7T 22h) (184 gemergte PRs in 30 T)

Beschreibung

Describe the bug

I have a project containing both server and client code. So I want to run tests also in node.

When I run vitest, I get Cannot read properties of undefined (reading 'navigator') error:

TypeError: Cannot read properties of undefined (reading 'navigator')
 ❯ resetClipboardStubOnView node_modules/.pnpm/@storybook+test@8.3.5_storybook@8.3.5/node_modules/@storybook/test/dist/index.mjs:178:7052
 ❯ node_modules/.pnpm/@storybook+test@8.3.5_storybook@8.3.5/node_modules/@storybook/test/dist/index.mjs:178:8238

This occurs when I set test.globals: true in vite.config.ts.

Reproduction link

https://github.com/cyberuni/sb-test-nav

Reproduction steps

run pnpm test

System

npx storybook@latest info

Storybook Environment Info:

System: OS: macOS 14.7 CPU: (10) arm64 Apple M1 Pro Shell: 5.9 - /bin/zsh Binaries: Node: 22.9.0 - ~/.local/state/fnm_multishells/74613_1728508612022/bin/node Yarn: 1.22.21 - ~/.nvm/versions/node/v20.12.2/bin/yarn npm: 10.8.3 - ~/.local/state/fnm_multishells/74613_1728508612022/bin/npm <----- active pnpm: 8.15.6 - ~/.nvm/versions/node/v20.12.2/bin/pnpm Browsers: Chrome: 129.0.6668.90 Safari: 18.0 npmPackages: @storybook/addon-essentials: ^8.3.5 => 8.3.5 @storybook/addon-interactions: ^8.3.5 => 8.3.5 @storybook/addon-links: ^8.3.5 => 8.3.5 @storybook/addon-onboarding: ^8.3.5 => 8.3.5 @storybook/blocks: ^8.3.5 => 8.3.5 @storybook/react: ^8.3.5 => 8.3.5 @storybook/react-vite: ^8.3.5 => 8.3.5 @storybook/test: ^8.3.5 => 8.3.5 eslint-plugin-storybook: ^0.9.0 => 0.9.0 storybook: ^8.3.5 => 8.3.5

Additional context

The @storybook/test is probably doing some work at load time which is not ideal.

It should avoid that or at least check for window?...

Contributor Guide