{"id":28423720,"url":"https://github.com/testing-library/web-testing-library","last_synced_at":"2025-10-06T19:12:36.432Z","repository":{"id":66068849,"uuid":"588834220","full_name":"testing-library/web-testing-library","owner":"testing-library","description":"🐙 Experimental Web testing utilities that encourage good testing practices.","archived":false,"fork":false,"pushed_at":"2023-10-03T08:45:07.000Z","size":220,"stargazers_count":7,"open_issues_count":2,"forks_count":3,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-09-24T00:35:09.195Z","etag":null,"topics":["javascript","testing"],"latest_commit_sha":null,"homepage":"https://testing-library.com/dom","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/testing-library.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-01-14T06:55:14.000Z","updated_at":"2024-02-02T23:10:12.000Z","dependencies_parsed_at":"2023-10-03T16:36:59.668Z","dependency_job_id":null,"html_url":"https://github.com/testing-library/web-testing-library","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.16666666666666663","last_synced_commit":"6f6f5a8a760959467f993eea96316b5ee5a5c450"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/testing-library/web-testing-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testing-library%2Fweb-testing-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testing-library%2Fweb-testing-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testing-library%2Fweb-testing-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testing-library%2Fweb-testing-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/testing-library","download_url":"https://codeload.github.com/testing-library/web-testing-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testing-library%2Fweb-testing-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278664031,"owners_count":26024540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","testing"],"created_at":"2025-06-05T09:09:17.816Z","updated_at":"2025-10-06T19:12:36.403Z","avatar_url":"https://github.com/testing-library.png","language":"JavaScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eWeb Testing Library\u003c/h1\u003e\n\n\u003ca href=\"https://www.emojione.com/emoji/1f419\"\u003e\n  \u003cimg\n    height=\"80\"\n    width=\"80\"\n    alt=\"octopus\"\n    src=\"https://raw.githubusercontent.com/testing-library/web-testing-library/main/other/octopus.png\"\n  /\u003e\n\u003c/a\u003e\n\n\u003cp\u003eSimple and complete Web testing utilities that encourage good testing\npractices.\u003c/p\u003e\n\n[**Read the docs**](https://testing-library.com/web) |\n[Edit the docs](https://github.com/testing-library/testing-library-docs)\n\n\u003c/div\u003e\n\n\u003chr /\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[![Build Status][build-badge]][build]\n[![Code Coverage][coverage-badge]][coverage]\n[![version][version-badge]][package]\n[![downloads][downloads-badge]][npmtrends]\n[![MIT License][license-badge]][license]\n[![All Contributors][all-contributors-badge]](#contributors)\n[![PRs Welcome][prs-badge]][prs]\n[![Code of Conduct][coc-badge]][coc]\n[![Discord][discord-badge]][discord]\n\n[![Watch on GitHub][github-watch-badge]][github-watch]\n[![Star on GitHub][github-star-badge]][github-star]\n[![Tweet][twitter-badge]][twitter]\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://testingjavascript.com\"\u003e\n    \u003cimg\n      width=\"500\"\n      alt=\"TestingJavaScript.com Learn the smart, efficient way to test any JavaScript application.\"\n      src=\"https://raw.githubusercontent.com/testing-library/web-testing-library/main/other/testingjavascript.jpg\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Table of Contents\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [The Problem](#the-problem)\n- [This Solution](#this-solution)\n- [Installation](#installation)\n- [Documentation](#documentation)\n- [Guiding Principles](#guiding-principles)\n- [Contributors](#contributors)\n- [LICENSE](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## The Problem\n\nYou want to write maintainable tests for the\n[Web Platform](https://proposal-common-min-api.deno.dev/) or React Native. As a\npart of this goal, you want your tests to avoid including implementation details\nof your components and rather focus on making your tests give you the confidence\nfor which they are intended. As part of this, you want your testbase to be\nmaintainable in the long run so refactors of your components (changes to\nimplementation but not functionality) don't break your tests and slow you and\nyour team down.\n\n## This Solution\n\nThe `Web Testing Library` is a very light-weight solution for testing code that\nruns on the Web Platform (a browser, [Node.js][node], [Deno](https://deno.land/)\netc) or React Native. The main utilities it provides involve querying the DOM\nfor nodes in a way that's similar to how the user finds elements on the page. In\nthis way, the library helps ensure your tests give you confidence in your UI\ncode. The `DOM Testing Library`'s primary guiding principle is:\n\n\u003e [The more your tests resemble the way your software is used, the more\n\u003e confidence they can give you.][guiding-principle]\n\n## Installation\n\nThis module is distributed via [npm][npm] and should be installed as one of your\nproject's `devDependencies`:\n\n```\nnpm install --save-dev @testing-library/web\n```\n\n\u003e [**Docs**](https://testing-library.com/docs/install)\n\n## Documentation\n\nRead the docs (and discover framework and tool-specific implementations) at\n[testing-library.com](https://testing-library.com/web)\n\n## Guiding Principles\n\n\u003e [The more your tests resemble the way your software is used, the more\n\u003e confidence they can give you.][guiding-principle]\n\nWe try to only expose methods and utilities that encourage you to write tests\nthat closely resemble how your code is used on the Web Platform or React Native.\n\nUtilities are included in this project based on the following guiding\nprinciples:\n\n1. They should be usable on both the Web Platform **and** React Native\n2. It should be generally useful for testing the application in the way the user\n   would use it. We _are_ making some trade-offs here because we're using a\n   computer and often a simulated environment, but in general, utilities should\n   encourage tests that use the application the way they're intended to be used.\n3. Utility implementations and APIs should be simple and flexible.\n\nAt the end of the day, what we want is for this library to be pretty\nlight-weight, simple, and understandable.\n\n## Contributors ✨\n\nThanks goes to these wonderful people\n([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://augustinlf.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5271169?v=4?s=100\" width=\"100px;\" alt=\"Augustin Le Fèvre\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAugustin Le Fèvre\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-AugustinLF\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://nickmccurdy.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/927220?v=4?s=100\" width=\"100px;\" alt=\"Nick McCurdy\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNick McCurdy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-nickmccurdy\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://twitch.tv/jacobmgevans\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/27247160?v=4?s=100\" width=\"100px;\" alt=\"Jacob M-G Evans\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJacob M-G Evans\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-JacobMGEvans\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://solverfox.dev/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12292047?v=4?s=100\" width=\"100px;\" alt=\"Sebastian Silbermann\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSebastian Silbermann\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/testing-library/web-testing-library/commits?author=eps1lon\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-eps1lon\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the\n[all-contributors](https://github.com/all-contributors/all-contributors)\nspecification. Contributions of any kind welcome!\n\n## LICENSE\n\n[MIT](LICENSE)\n\n\u003c!-- prettier-ignore-start --\u003e\n\n[npm]: https://www.npmjs.com/\n[node]: https://nodejs.org\n[build-badge]: https://img.shields.io/github/workflow/status/testing-library/web-testing-library/validate?logo=github\u0026style=flat-square\n[build]: https://github.com/testing-library/web-testing-library/actions?query=workflow%3Avalidate\n[coverage-badge]: https://img.shields.io/codecov/c/github/testing-library/web-testing-library.svg?style=flat-square\n[coverage]: https://codecov.io/github/testing-library/web-testing-library\n[version-badge]: https://img.shields.io/npm/v/@testing-library/web.svg?style=flat-square\n[package]: https://www.npmjs.com/package/@testing-library/web\n[downloads-badge]: https://img.shields.io/npm/dm/@testing-library/web.svg?style=flat-square\n[npmtrends]: http://www.npmtrends.com/@testing-library/web\n[license-badge]: https://img.shields.io/npm/l/@testing-library/web.svg?style=flat-square\n[license]: https://github.com/testing-library/web-testing-library/blob/main/LICENSE\n[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[prs]: http://makeapullrequest.com\n[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square\n[coc]: https://github.com/testing-library/web-testing-library/blob/main/CODE_OF_CONDUCT.md\n[github-watch-badge]: https://img.shields.io/github/watchers/testing-library/web-testing-library.svg?style=social\n[github-watch]: https://github.com/testing-library/web-testing-library/watchers\n[github-star-badge]: https://img.shields.io/github/stars/testing-library/web-testing-library.svg?style=social\n[github-star]: https://github.com/testing-library/web-testing-library/stargazers\n[twitter]: https://twitter.com/intent/tweet?text=Check%20out%20dom-testing-library%20by%20%40testing-library%20https%3A%2F%2Fgithub.com%2Ftesting-library%2Fdom-testing-library%20%F0%9F%91%8D\n[twitter-badge]: https://img.shields.io/twitter/url/https/github.com/testing-library/web-testing-library.svg?style=social\n[emojis]: https://github.com/all-contributors/all-contributors#emoji-key\n[all-contributors]: https://github.com/all-contributors/all-contributors\n[all-contributors-badge]: https://img.shields.io/github/all-contributors/testing-library/web-testing-library?color=orange\u0026style=flat-square\n[set-immediate]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate\n[guiding-principle]: https://twitter.com/kentcdodds/status/977018512689455106\n[jest]: https://facebook.github.io/jest\n[discord-badge]: https://img.shields.io/discord/723559267868737556.svg?color=7389D8\u0026labelColor=6A7EC2\u0026logo=discord\u0026logoColor=ffffff\u0026style=flat-square\n[discord]: https://discord.gg/testing-library\n\n\u003c!-- prettier-ignore-end --\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftesting-library%2Fweb-testing-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftesting-library%2Fweb-testing-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftesting-library%2Fweb-testing-library/lists"}