Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scripts: Support split Jest configuration for test commands #22477

Merged
merged 4 commits into from
May 25, 2020

Conversation

aduth
Copy link
Member

@aduth aduth commented May 19, 2020

Previously: #12437 (comment)

This pull request seeks to enhance wp-scripts to support disambiguation of configurations by test command. Currently, if a project has a jest.config.js or jest configuration, it will take effect for both test-e2e and test-unit commands. There is no way to force one or the other to use the default, and there's no easy way to provide a custom configuration for one or the other environment specifically (except via explicit --config flag).

With these changes, a developer can now have a jest-unit.config.js or jest-e2e.config.js (or .json) files to target configurations as applying to the specific applicable test command.

The prioritization is a bit complex, but the idea is:

  • Always prefer --config (-c) if provided.
  • Else, if a command-specific configuration is present (jest-unit.config.js, jest-e2e.config.js), use it.
  • Else, if jest.config.js or the package.json jest directive is present, use it.
  • Else, use the default configuration appropriate for the test command.

Testing Instructions:

It's not especially easy to test except by having an environment which uses wp-scripts, then using npm link in the packages/script directory of this branch. I've tested it in local changes of the Dones project where I originally encountered issues. I confirmed that jest-e2e.config.js is recognized, and also that omitting an e2e-specific configuration and providing only jest-unit.config.js allows the default end-to-end configuration to be used.

(In Progress: Not yet implemented, but I suppose it would be good to include some unit tests for the new getJestOverrideConfigFile utility)

@aduth aduth added [Type] Enhancement A suggestion for improvement. [Package] Scripts /packages/scripts labels May 19, 2020
@aduth aduth requested a review from gziolo May 19, 2020 20:48
@github-actions
Copy link

github-actions bot commented May 19, 2020

Size Change: +12.6 kB (1%)

Total Size: 1.12 MB

Filename Size Change
build/a11y/index.js 1.14 kB +123 B (10%) ⚠️
build/annotations/index.js 3.62 kB -1 B
build/api-fetch/index.js 3.4 kB +5 B (0%)
build/autop/index.js 2.83 kB +1 B
build/block-editor/index.js 105 kB +273 B (0%)
build/block-editor/style-rtl.css 10.9 kB +100 B (0%)
build/block-editor/style.css 10.9 kB +96 B (0%)
build/block-library/editor-rtl.css 7.17 kB -50 B (0%)
build/block-library/editor.css 7.17 kB -50 B (0%)
build/block-library/index.js 119 kB -181 B (0%)
build/block-library/style-rtl.css 7.48 kB -1 B
build/block-library/style.css 7.48 kB -1 B
build/block-library/theme-rtl.css 684 B +1 B
build/block-library/theme.css 686 B +1 B
build/block-serialization-default-parser/index.js 1.88 kB +1 B
build/blocks/index.js 48.1 kB -4 B (0%)
build/components/index.js 190 kB +7.46 kB (3%)
build/components/style-rtl.css 17.1 kB -2 B (0%)
build/components/style.css 17.1 kB -4 B (0%)
build/compose/index.js 9.28 kB +2.6 kB (28%) 🚨
build/core-data/index.js 11.4 kB +41 B (0%)
build/data-controls/index.js 1.29 kB +4 B (0%)
build/data/index.js 8.42 kB -2 B (0%)
build/date/index.js 5.47 kB +2 B (0%)
build/deprecated/index.js 771 B -1 B
build/edit-navigation/index.js 6.63 kB +30 B (0%)
build/edit-post/index.js 302 kB -9 B (0%)
build/edit-post/style-rtl.css 12.2 kB +42 B (0%)
build/edit-post/style.css 12.2 kB +42 B (0%)
build/edit-site/index.js 13.8 kB +1.04 kB (7%) 🔍
build/edit-site/style-rtl.css 5.53 kB +310 B (5%) 🔍
build/edit-site/style.css 5.53 kB +312 B (5%) 🔍
build/edit-widgets/index.js 7.87 kB +140 B (1%)
build/edit-widgets/style-rtl.css 4.58 kB -15 B (0%)
build/edit-widgets/style.css 4.57 kB -15 B (0%)
build/editor/index.js 44.6 kB +297 B (0%)
build/editor/style-rtl.css 5.06 kB -14 B (0%)
build/editor/style.css 5.06 kB -15 B (0%)
build/format-library/index.js 7.71 kB +72 B (0%)
build/hooks/index.js 2.13 kB +1 B
build/i18n/index.js 3.56 kB +1 B
build/keyboard-shortcuts/index.js 2.51 kB -2 B (0%)
build/list-reusable-blocks/index.js 3.13 kB +1 B
build/media-utils/index.js 5.29 kB -1 B
build/nux/index.js 3.4 kB -1 B
build/rich-text/index.js 14.8 kB -1 B
build/server-side-render/index.js 2.67 kB -1 B
build/url/index.js 4.02 kB +1 B
ℹ️ View Unchanged
Filename Size Change
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.93 kB 0 B
build/block-directory/style-rtl.css 790 B 0 B
build/block-directory/style.css 791 B 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.11 kB 0 B
build/edit-navigation/style-rtl.css 857 B 0 B
build/edit-navigation/style.css 856 B 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/html-entities/index.js 622 B 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

Copy link
Member

@gziolo gziolo left a comment

Choose a reason for hiding this comment

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

I like the proposed implementation. Thank you for working on it 💯

packages/scripts/utils/config.js Outdated Show resolved Hide resolved
packages/scripts/utils/test/index.js Show resolved Hide resolved
@aduth aduth merged commit 30c25bb into master May 25, 2020
@aduth aduth deleted the update/scripts-jest-split-config branch May 25, 2020 20:14
@github-actions github-actions bot added this to the Gutenberg 8.3 milestone May 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Scripts /packages/scripts [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants