Comments (6)
So this was rather embarrassing.
I did a bit more digging, and your question about the puppeteer
version that we're using got me thinking.
So I updated to the latest version of both jest
and puppeteer
, and that seemed to fix the problem that I was seeing. I have a feeling that it was some incompatibility that exists between certain versions of expect-puppeteer
and puppeteer
.
Thanks for being so responsive, and thanks for all the work that you're putting into this adapter!
from jest-puppeteer.
Hello @scallaway, can you be more explicit on the error you got? TypeScript one?
from jest-puppeteer.
Hi @gregberge
Sorry for the lack of information!
I don't believe it to be a TypeScript error, since it looks as though it's being thrown from the expect-puppeteer
code itself.
The complete error is;
JSHandle@node is not supported
8 |
9 | export function assertExists<T>(value: T): asserts value is NonNullable<T> {
> 10 | expect(value).not.toBeNull();
| ^
11 | expect(value).not.toBeUndefined();
12 | }
13 |
at expectPuppeteerInstance (node_modules/expect-puppeteer/dist/index.js:482:11)
at expectPuppeteer (node_modules/expect-puppeteer/dist/index.js:486:26)
assertExists
is just a helper function that we have to keep the TS compiler happy when we're dealing with values that it believes should be nullable, even though we can verify they're not (and the test should fail if they are).
The case I believe we're hitting is here: https://github.com/argos-ci/jest-puppeteer/blob/main/packages/expect-puppeteer/src/index.ts#L145
from jest-puppeteer.
@scallaway thanks, could you please give me the input provided? Because Page.waitForSelector() and Page.$() returns ElementHandle according to the documentation.
from jest-puppeteer.
So if I log the value that's being passed to assertExists
(that fails), I get
value: ElementHandle {}
which is strange because that should be handled. I'm not quite sure where the JSHandle
stuff is coming from.
The relevant code is;
const SELECTOR_FILTER_INPUT = `[aria-label="label filter"] [role="search"] input`;
const inputField = await page.waitForSelector(SELECTOR_FILTER_INPUT);
It's also worth noting that I recently updated us from version 6 (where everything was working fine), to the latest where we're now seeing this problem.
from jest-puppeteer.
What Puppeteer version do you use? Could you please dig it more? Because according to the spec. of Puppeteer it is right, also all tests are passing here.
from jest-puppeteer.
Related Issues (20)
- Dependency Errors Using `npm i` HOT 2
- Cannot find module 'node:stream' on fresh install HOT 1
- Compiler errors importing `JestPuppeteerConfig` interface HOT 2
- Compiler errors extending `PuppeteerEnvironment`
- Compiler errors accessing `PuppeteerEnvironment` globals HOT 1
- Jest preset not working with latest jest and jest-puppeteer HOT 6
- Snapshot serializers added with `expect.addSnapshotSerializer` are not used HOT 3
- Remove Warning On New Headless Setting HOT 5
- Many browser windows open when running tests HOT 4
- [jest-dev-server] not working server.usedPortAction: 'ignore' config when running React application with react-scripts
- Invariant: WORKERS_COUNT not found HOT 4
- @types/expect-puppeteer no such type toMatchTextContent HOT 1
- Using jest-puppeteer with nx HOT 4
- How can I launch jest-puppeteer with args? HOT 1
- Regression: `injectGlobals:false` no longer supported ("Cannot convert undefined or null to object") HOT 1
- Puppeteer 21 regression: `[object Object] is not supported` HOT 4
- Is @types/jest-environment-puppeteer still required? HOT 3
- jest-dev-server - "kill" missing in "usedPortAction" type definition HOT 1
- TypeError: page.removeListener is not a function HOT 2
- userDataDir must be specified in `args` outside `launch`, or else browser crashes HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jest-puppeteer.