storybookjs/storybook

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

Open

#29.314 aperta il 9 ott 2024

Vedi su GitHub
 (7 commenti) (0 reazioni) (0 assegnatari)TypeScript (10.058 fork)batch import
addon: vitestbughelp wantedsev:S3

Metriche repository

Star
 (89.909 star)
Metriche merge PR
 (Merge medio 7g 22h) (184 PR mergiate in 30 g)

Descrizione

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?...

Guida contributor