https://github.com/gemini-testing/testplane-testing-library
https://github.com/gemini-testing/testplane-testing-library
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/gemini-testing/testplane-testing-library
- Owner: gemini-testing
- License: mit
- Created: 2025-07-25T10:08:06.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-10-14T13:48:50.000Z (9 months ago)
- Last Synced: 2025-10-21T07:13:39.440Z (8 months ago)
- Language: TypeScript
- Size: 642 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Introduction
[Testing-library](https://testing-library.com/) 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
1. Install the npm package `@testplane/testing-library`:
```shell
npm i -D @testplane/testing-library
```
2. Include it in the Testplane config in the `prepareBrowser` section:
```js
// .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
```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](https://testing-library.com/docs/queries/about/). For example, searching for an element by its text:
```js
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:
```js
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.