Skip to content

Conversation

@matt-halliday
Copy link

@matt-halliday matt-halliday commented Aug 18, 2025

Closes #577

What I did

This adds a custom Jest sequencer if the tests are running against an index.json file (in which case test files are written to a temporary directory), and sort them by test name, rather than default which uses the path.

Checklist for Contributors

Manual testing

yarn test-storybook -u --browsers chromium --url=https://drei.pmnd.rs --shard=1/2

yarn test-storybook -u --browsers chromium --url=https://drei.pmnd.rs --shard=2/2

You will have coverage of all the components, not a random amount of them.

Documentation

  • Add or update documentation reflecting your changes in this repository
  • Request documentation updates in the test-runner docs website

Checklist for Maintainers

  • Make sure this PR contains one of the labels below:

    Available labels
    • skip-release: Skip any releases, e.g., documentation only changes, CI config etc.
    • patch: Upgrade patch version (e.g. 0.0.x)
    • minor: Upgrade patch version (e.g. 0.x.0)
    • major: Upgrade patch version (e.g. x.0.0)

tsup.config.ts Outdated
{
clean: true,
entry: ['./src/index.ts', './src/test-storybook.ts'],
entry: ['./src/index.ts', './src/test-storybook.ts', './src/config/jest-sequencer.ts'],
Copy link
Author

@matt-halliday matt-halliday Aug 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I struggled to get this to be usable in Jest config without building it and including it in the dist folder... Not sure if there's a way to avoid that with the way jest config wants to resolve a module.

@jtbandes
Copy link

Thanks for sharing this, this fix worked perfectly for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: using --shard with --url does not distribute tests evenly, contains duplicates

2 participants