-
Notifications
You must be signed in to change notification settings - Fork 798
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
fix(test): pass jest args correctly for v28/29 #5068
Conversation
|
Path | Error Count |
---|---|
src/dev-server/index.ts | 37 |
src/mock-doc/serialize-node.ts | 36 |
src/dev-server/server-process.ts | 32 |
src/compiler/build/build-stats.ts | 23 |
src/compiler/style/test/optimize-css.spec.ts | 23 |
src/testing/puppeteer/puppeteer-element.ts | 23 |
src/compiler/output-targets/dist-lazy/generate-lazy-module.ts | 22 |
src/compiler/prerender/prerender-main.ts | 22 |
src/runtime/client-hydrate.ts | 19 |
src/screenshot/connector-base.ts | 19 |
src/runtime/vdom/vdom-render.ts | 18 |
src/compiler/config/test/validate-paths.spec.ts | 16 |
src/dev-server/request-handler.ts | 15 |
src/compiler/prerender/prerender-optimize.ts | 14 |
src/compiler/sys/stencil-sys.ts | 14 |
src/compiler/transpile/transpile-module.ts | 14 |
src/runtime/vdom/vdom-annotations.ts | 14 |
src/sys/node/node-sys.ts | 14 |
src/compiler/build/build-finish.ts | 13 |
src/compiler/prerender/prerender-queue.ts | 13 |
Our most common errors
Typescript Error Code | Count |
---|---|
TS2345 | 404 |
TS2322 | 384 |
TS18048 | 310 |
TS18047 | 100 |
TS2722 | 38 |
TS2532 | 34 |
TS2531 | 23 |
TS2454 | 14 |
TS2352 | 13 |
TS2769 | 10 |
TS2790 | 10 |
TS2538 | 8 |
TS2416 | 6 |
TS2344 | 5 |
TS2493 | 3 |
TS2488 | 2 |
TS18046 | 2 |
TS2684 | 1 |
TS2430 | 1 |
Unused exports report
There are 14 unused exports on this PR. That's the same number of errors on main, so at least we're not creating new ones!
Unused exports
File | Line | Identifier |
---|---|---|
src/runtime/bootstrap-lazy.ts | 21 | setNonce |
src/screenshot/screenshot-fs.ts | 18 | readScreenshotData |
src/testing/testing-utils.ts | 198 | withSilentWarn |
src/utils/index.ts | 145 | CUSTOM |
src/utils/index.ts | 269 | normalize |
src/utils/index.ts | 7 | escapeRegExpSpecialCharacters |
src/compiler/app-core/app-data.ts | 25 | BUILD |
src/compiler/app-core/app-data.ts | 115 | Env |
src/compiler/app-core/app-data.ts | 117 | NAMESPACE |
src/compiler/fs-watch/fs-watch-rebuild.ts | 123 | updateCacheFromRebuild |
src/compiler/types/validate-primary-package-output-target.ts | 61 | satisfies |
src/compiler/types/validate-primary-package-output-target.ts | 61 | Record |
src/testing/puppeteer/puppeteer-declarations.ts | 485 | WaitForEventOptions |
src/compiler/sys/fetch/write-fetch-success.ts | 7 | writeFetchSuccessSync |
Ah - so CI (steps) pass locally for me, but not in the actual env. I know what the problem is - looks like I'll have to work on/land STENCIL-994 to ensure that |
dcd44a6
to
ae546ef
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ran through the test steps and things are working 👍 Not sure where it's saying the SNCs are coming from (didn't see any locally 🤷♂️ ).
Side note: thoughts on adding a script to the root package.json
for running the jest deps script?
4297a31
to
e058d02
Compare
the original goal of this effort was to remove the `any` type on `jest-apt.ts`'s `JestTestRunner` type. doing so revealed a handful of subtle errors in the implementation of the jest runner for stencil. 1. `jest-facade.ts#getCreateJestTestRunner` was incorrectly typed. _technically_ this was correct in that it returned `any`, which can be a function. however, we were not explicit/clear that this was a function being returned in the JSDoc. 2. `jest-runner.ts#createTestRunner` was incorrectly typed. Again, this was _technically_ correct in that it used `any`, but it was unclear that an anonymous class was returned by this function. 3. The anonymous class that is returned by `createTestRunner` for Jest 28/29 was incorrectly typed. the dynamic import of `jest-runner` from Jest was typed as `any`, which caused the overrides of `runTests` to be improperly typed. in fact, it revealed we were not passing arguments correctly to the parent class. by removing the dynamic import within the `jest-runner.ts` implementations for each respective version of jest, stencil's bundler (for the compiler itself) began to pull in additional files to the bundle that it wasn't able to process. Jest's `jest-runner` module was already being dynamically imported, and was deemed to externalize in stencil's testing bundle. STENCIL-960: Narrow Jest Runner Type
a605aec
to
4119ddc
Compare
add an `install.jest` script to `package.json` to make it easier to install jest dependencies within the project. the motivator for this change is the following suggestion in a pull request that was a child PR of the one that implemented this functionality - #5068 (review)
I'm gonna open a separate PR for this - I added the |
add an `install.jest` script to `package.json` to make it easier to install jest dependencies within the project. the motivator for this change is the following suggestion in a pull request that was a child PR of the one that implemented this functionality - #5068 (review)
add an `install.jest` script to `package.json` to make it easier to install jest dependencies within the project. the motivator for this change is the following suggestion in a pull request that was a child PR of the one that implemented this functionality - #5068 (review)
add an `install.jest` script to `package.json` to make it easier to install jest dependencies within the project. the motivator for this change is the following suggestion in a pull request that was a child PR of the one that implemented this functionality - #5068 (review)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
Note: Depends on ##5069 - please review when this PR is moved out of draft state
What is the current behavior?
We use
any
to type our Jest Test Runner, which we'd like to narrow.GitHub Issue Number: N/A
What is the new behavior?
the original goal of this effort was to remove the
any
type onjest-apt.ts
'sJestTestRunner
type. doing so revealed a handful of subtle errors in the implementation of the jest runner for stencil.jest-facade.ts#getCreateJestTestRunner
was incorrectly typed. technically this was correct in that it returnedany
, which can be a function. however, we were not explicit/clear that this was a function being returned in the JSDoc.jest-runner.ts#createTestRunner
was incorrectly typed. Again, this was technically correct in that it usedany
, but it was unclear that an anonymous class was returned by this function.createTestRunner
for Jest 28/29 was incorrectly typed. the dynamic import ofjest-runner
from Jest was typed asany
, which caused the overrides ofrunTests
to be improperly typed. in fact, it revealed we were not passing arguments correctly to the parent class.by removing the dynamic import within the
jest-runner.ts
implementations for each respective version of jest, stencil's bundler (for the compiler itself) began to pull in additional files to the bundle that it wasn't able to process. Jest'sjest-runner
module was already being dynamically imported, and was deemed to externalize in stencil's testing bundle.Does this introduce a breaking change?
Testing
First, build the project with this branch:
Then install it in the output of creating a new stencil component library:
Run tests for all versions of Jest:
Other information
STENCIL-960: Narrow Jest Runner Type