storybookjs / addon-coverage

MIT License
21 stars 10 forks source link

[Bug] Code outside of the yarn workspace are not instrumented #19

Open sw-tracker opened 1 year ago

sw-tracker commented 1 year ago

Describe the bug

I have 2 yarn workspaces, one containing my app and another containing storybook.

Steps to reproduce the behavior

  1. Setup react in one yarn workspace, create react components and stories here
  2. Setup a separate yarn workspace and install storybook there
  3. Set storybook main.js stories to be found in the react workspace
  4. Start storybook
  5. Run tests with coverage -> Error: The code in this story is not instrumented, which means the coverage setup is likely not correct.
// main.js
module.exports = {
  stories: [
    "../../components/src/**/*.stories.mdx",
    "../../components/src/**/*.stories.@(js|jsx|ts|tsx)",
  ],
  addons: [
    "@storybook/addon-links",
    "@storybook/addon-essentials",
    "@storybook/addon-interactions",
    '@storybook/addon-coverage',
  ],
  framework: "@storybook/react",
  features: {
    interactionsDebugger: true,
  },
}

I have also ejected storybook to get the tests to run:

// test-runner-jest.config.js
const {getJestConfig} = require('@storybook/test-runner');

module.exports = {
  // The default configuration comes from @storybook/test-runner
  ...getJestConfig(),
  /** Add your own overrides below
   * @see https://jestjs.io/docs/configuration
   */
  rootDir: '../components/',
  testEnvironmentOptions: {
    'jest-playwright': {
      browsers: ['chromium'],
    },
  },
};

Expected behavior

Tests with coverage work.

Screenshots and/or logs

Error:

 [Test runner] An error occurred when evaluating code coverage:
      The code in this story is not instrumented, which means the coverage setup is likely not correct.
      More info: https://github.com/storybookjs/test-runner#setting-up-code-coverage

Environment

HenryKenya commented 1 year ago

Having the same error despite the addon being setup correctly

HenryKenya commented 1 year ago

@yannbf is this a known thing?

himself65 commented 1 year ago

same error here

idesigncode commented 1 year ago

Possibly unrelated but I was getting this error when using an external React component (from an installed dependency) within the render/component of a story. It was the external component that could not be instrumented as removing it allowed the coverage tests to run.

npx sb upgrade seems to have resolved my issue now (although I was only using one workspace).

Alternatively you could try specifying where you want coverage from with the include configuration ?