GithubHelp home page GithubHelp logo

Comments (6)

scallaway avatar scallaway commented on June 17, 2024 1

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.

gregberge avatar gregberge commented on June 17, 2024

Hello @scallaway, can you be more explicit on the error you got? TypeScript one?

from jest-puppeteer.

scallaway avatar scallaway commented on June 17, 2024

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.

gregberge avatar gregberge commented on June 17, 2024

@scallaway thanks, could you please give me the input provided? Because Page.waitForSelector() and Page.$() returns ElementHandle according to the documentation.

from jest-puppeteer.

scallaway avatar scallaway commented on June 17, 2024

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.

gregberge avatar gregberge commented on June 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.