@testplane/testing-library
v1.0.2
Published
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="./docs/images/logo-light.svg" width="600"> <source media="(prefers-color-scheme: light)" srcset="./docs/images/logo-dark.svg" width="600"> <img a
Downloads
31
Keywords
Readme
Introduction
Testing-library is a collection of tools for testing web application user interfaces, focused on creating reliable and maintainable tests by emphasizing user behavior. The main advantage of testing-library is its focus on interaction with interface elements. And in testplane, you can use the element search methods provided by the testing-library itself.
Installation
- Install the npm package
@testplane/testing-library:
npm i -D @testplane/testing-library- Include it in the Testplane config in the
prepareBrowsersection:
// .testplane.conf.js
const { setupBrowser } = require("@testplane/testing-library");
module.exports = {
prepareBrowser(browser) {
setupBrowser(browser);
},
// other Testplane settings...
};If you are using TypeScript and experiencing issues with testing-library types, you may add the following line to your tsconfig.json
{
"compilerOptions": {
"types": [
"@testplane/testing-library"
]
}
}Usage
After configuring, you will be able to use the search by selectors from testing-library, as described in the official documentation. For example, searching for an element by its text:
it("example", async ({ browser }) => {
await browser.url("https://github.com/");
const newRepoButton = await browser.getByText("New");
await newRepoButton.click();
});
This feature will also be available in the context of found elements:
it("example", async ({ browser }) => {
await browser.url("https://github.com/");
const sidebar = await browser.$(".dashboard-sidebar");
const newRepoButton = await sidebar.getByText("New");
await newRepoButton.click();
});Disclaimer:
All testing-library selectors return a promise and cannot be chained (like browser.getByText().click() — this is not possible).
Each testing-library selector must be awaited before performing any actions on it.
