-
Notifications
You must be signed in to change notification settings - Fork 795
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
chore(test): migrate Karma tests to WebdriverIO #5465
Conversation
|
Path | Error Count |
---|---|
src/dev-server/index.ts | 37 |
src/dev-server/server-process.ts | 32 |
src/compiler/prerender/prerender-main.ts | 22 |
src/testing/puppeteer/puppeteer-element.ts | 22 |
src/runtime/client-hydrate.ts | 20 |
src/screenshot/connector-base.ts | 19 |
src/runtime/vdom/vdom-render.ts | 17 |
src/dev-server/request-handler.ts | 15 |
src/compiler/prerender/prerender-optimize.ts | 14 |
src/compiler/sys/stencil-sys.ts | 14 |
src/sys/node/node-sys.ts | 14 |
src/compiler/prerender/prerender-queue.ts | 13 |
src/compiler/sys/in-memory-fs.ts | 13 |
src/runtime/connected-callback.ts | 13 |
src/runtime/set-value.ts | 13 |
src/compiler/output-targets/output-www.ts | 12 |
src/compiler/transformers/test/parse-vdom.spec.ts | 12 |
src/compiler/transformers/transform-utils.ts | 12 |
src/compiler/transpile/transpile-module.ts | 12 |
src/mock-doc/test/attribute.spec.ts | 12 |
Our most common errors
Typescript Error Code | Count |
---|---|
TS2322 | 362 |
TS2345 | 346 |
TS18048 | 204 |
TS18047 | 82 |
TS2722 | 37 |
TS2532 | 24 |
TS2531 | 21 |
TS2454 | 14 |
TS2790 | 11 |
TS2352 | 11 |
TS2769 | 8 |
TS2416 | 8 |
TS2538 | 8 |
TS2493 | 3 |
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 |
PR built and packed!Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/8443380194/artifacts/1361072641 If your browser saves files to
|
const { WWW_OUT_DIR } = require('../../constants'); | ||
|
||
module.exports = { | ||
entry: path.resolve(__dirname, 'index.esm.js'), |
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.
Does someone know the point of having Webpack involved here? It doesn't seem to do anything other than re-bundling the package and importing it in the browser. I believe we cover this feature with the setup script automatically.
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.
I think @rwaskiewicz is familiar with the basis for the setup -- if it's possible for us to do without it I'm all for it because it's super confusing haha
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.
IIRC, reason for this was two-fold:
- to test Stencil could go through the webpack process (this is a regression Stencil had at some point)
- To use the
dist-custom-elements
output target, as opposed towww
a76e300
to
2bfa5f1
Compare
e836f74
to
a7b3cf1
Compare
@rwaskiewicz @tanner-reits any objections to merge? |
@christian-bromann looks like there are some CI failures |
Addressed them, they sneaked it after the last rebase |
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.
For the most part, the changes look good here!
Some of these tests were built specifically for DCE or Webpack regressions/features - with that in mind, I think there's some value in bringing them back.
Previously we kinda hacked this in as a 2 part build - we'd have build.app
kick off a Stencil Build that included dist-custom-elements
, then we'd have webpack bundle/move the files to the www
output directory (build.custom-elements
job) so they'd get kicked off by the test runner.
It's all a bit confusing TBH, let me know if you wanna jam on ways we can put this together to be a little more cohesive 😆
6e7c015
to
4c12edf
Compare
@rwaskiewicz I tracked down the source of the test which was introduced in #3039. From what I can see is that this verifies that the DCE output target provides a I don't think it makes sense anymore to keep Webpack as a dependency for this test stack. |
I think I'd be amenable to that 👍 |
4c12edf
to
8fd45a3
Compare
I made changes accordingly. Let me know what you think. |
2878d30
to
ba4ee40
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.
One non-blocking question
await browser.waitUntil(async () => { | ||
return document.querySelector('div.reordered'); | ||
}); | ||
|
||
reordered(); | ||
|
||
await $('button').click(); | ||
await browser.waitUntil(() => { | ||
await browser.waitUntil(async () => { | ||
return !document.querySelector('div.reordered'); | ||
}); | ||
|
||
ordered(); | ||
|
||
await $('button').click(); | ||
await browser.waitUntil(() => { | ||
await browser.waitUntil(async () => { |
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.
Does passing an async
function to waitUntil
do anything special? Or do we not need async
on these fns?
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.
I've seen race conditions saying .then is not a function
and my assumptions are that this has to do with WebdriverIO. It is on the list of things I'ld like to look into eventually. In the meeting, I am adding this to avoid the race conditions.
ba4ee40
to
5e46a74
Compare
This patch migrates: