Conversation
In order to use dependencies that are esm modules (which `@actions/*` just did), we have to be an esm module ourselves. Note that this doesn't work yet; esm modules break jest's mocking. This'll be addressed in future commits.
We can't mock that way with esm dependencies[^1]. There are some workarounds, but nothing worked, so I decided to introduce my own interface and dependency injection. In the `exec` module, apparently, we used to do it this way; there was an old (unused) `ExecDelegate` interface. When implementing `withCache`, I tried to follow that naming and test definition style, balanced against reducing the diff with `main`. [^1]: jestjs/jest#10025
Now that it's an esm module, we can't mock `core` like we were.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix: migrate to esm module
825a3d6
In order to use dependencies that are esm modules (which
@actions/*just did), we have to be an esm module ourselves.
Note that this doesn't work yet; esm modules break jest's mocking.
This'll be addressed in future commits.
chore: replace jest mock with dep injection
ebe8dbd
We can't mock that way with esm dependencies1. There are some
workarounds, but nothing worked, so I decided to introduce my own
interface and dependency injection.
In the
execmodule, apparently, we used to do it this way; there wasan old (unused)
ExecDelegateinterface. When implementingwithCache,I tried to follow that naming and test definition style, balanced
against reducing the diff with
main.chore: introduce CacheOptions{silent} to avoid logging in tests
1be63c3
Now that it's an esm module, we can't mock
corelike we were.Footnotes
https://github.com/jestjs/jest/issues/10025 ↩