testing-library / pptr-testing-library

puppeteer + dom-testing-library = đź’–
MIT License
287 stars 29 forks source link

Environment variable DEBUG_PRINT_LIMIT not working for me #55

Open tmalahie opened 3 years ago

tmalahie commented 3 years ago

I was trying to use the environment variable, DEBUG_PRINT_LIMIT, to limit the length of the HTML printed to console in case of failure. But for some reasons, the variable environment is just ignored by the library...

My project:

package.json

{
  "scripts": {
    "test": "jest --detectOpenHandles"
  },
  "devDependencies": {
    "jest": "^26.6.3",
    "pptr-testing-library": "^0.6.4",
    "puppeteer": "^2.1.1"
  }
}

main.test.js

const puppeteer = require('puppeteer')
require('pptr-testing-library/extend')

test('Should go to the forum', async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("https://mkpc.malahieude.net");
    const $document = await page.getDocument();
    const $forum = await $document.getByText("Forum");
});

Now when I run DEBUG_PRINT_LIMIT=10 npm test, the environment variable is just ignored since it prints me the whole HTML instead of just 10 characters...

I tried many things: setting the environment variable in the package.json file, or directly in my code, but nothing works, the variable is just ignored.

However if I change the code of the library (file pptr-testing-library/dom-testing-library.js), and I replace process.env.DEBUG_PRINT_LIMIT || 7000 with process.env.DEBUG_PRINT_LIMIT || 10, then it works! So it seems that for some reason the environment variable is not passed correctly to the library.

I'm using node version 12 on a Debian machine (I think it doesn't change anything though).

Is it a bug in the library or am I doing something wrong?

Thanks

patrickhulce commented 3 years ago

Thanks for filing @tmalahie !

So it seems that for some reason the environment variable is not passed correctly to the library.

Correct this library does not even attempt to pass environment variables through. dom-testing-library is executed inside the browser context which does not have any access to the environment variables in node.

We'd accept a PR that injected relevant variables though :)

Izhaki commented 2 years ago

I don't think DEBUG_PRINT_LIMIT works with dom-testing-library.

The way to go about this is providing getElementError to configure (see docs and related GitHub issue).

However, pptr-testing-library does not support this at the moment. Not sure how hard supporting this will be, the support for testIdAttribute does not look like a straight-forward delegation.

Yorkshireman commented 1 month ago

Has this been fixed?

patrickhulce commented 1 month ago

@Yorkshireman nope.