{"id":18477196,"url":"https://github.com/e2e-test-quest/uuv","last_synced_at":"2026-04-07T00:02:59.177Z","repository":{"id":165250342,"uuid":"632218942","full_name":"e2e-test-quest/uuv","owner":"e2e-test-quest","description":"Solution to facilitate the writing and execution of E2E tests understandable by any human","archived":false,"fork":false,"pushed_at":"2026-04-02T06:59:30.000Z","size":133099,"stargazers_count":152,"open_issues_count":43,"forks_count":16,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-02T09:33:54.433Z","etag":null,"topics":["a11y","a11y-testing","accessibility","accessibility-testing","bdd","cucumber","cypress","e2e","e2e-testing","e2e-tests","end-to-end","end-to-end-testing","gherkin","hacktoberfest","playwright","tdd","test","test-automation","testing-library","uuv"],"latest_commit_sha":null,"homepage":"https://e2e-test-quest.github.io/uuv/","language":"TypeScript","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/e2e-test-quest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":"DCO.txt","cla":null}},"created_at":"2023-04-25T00:51:17.000Z","updated_at":"2026-03-29T21:23:55.000Z","dependencies_parsed_at":"2026-03-10T20:08:17.825Z","dependency_job_id":null,"html_url":"https://github.com/e2e-test-quest/uuv","commit_stats":{"total_commits":1584,"total_committers":18,"mean_commits":88.0,"dds":0.5397727272727273,"last_synced_commit":"a5955395333ea578abd2dac7c69fd093420f3c11"},"previous_names":["e2e-test-quest/uuv"],"tags_count":1204,"template":false,"template_full_name":null,"purl":"pkg:github/e2e-test-quest/uuv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2e-test-quest%2Fuuv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2e-test-quest%2Fuuv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2e-test-quest%2Fuuv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2e-test-quest%2Fuuv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e2e-test-quest","download_url":"https://codeload.github.com/e2e-test-quest/uuv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2e-test-quest%2Fuuv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31494180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["a11y","a11y-testing","accessibility","accessibility-testing","bdd","cucumber","cypress","e2e","e2e-testing","e2e-tests","end-to-end","end-to-end-testing","gherkin","hacktoberfest","playwright","tdd","test","test-automation","testing-library","uuv"],"created_at":"2024-11-06T11:04:27.434Z","updated_at":"2026-04-07T00:02:59.158Z","avatar_url":"https://github.com/e2e-test-quest.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e  \r\n\u003ca href=\"https://e2e-test-quest.github.io/uuv/\"\u003e  \r\n\u003cpicture\u003e  \r\n\u003cimg alt=\"UUV Logo\" src=\"https://e2e-test-quest.github.io/uuv/img/uuv.png\"\u003e  \r\n\u003c/picture\u003e  \r\n\u003c/a\u003e  \r\n\u003c/p\u003e  \r\n\r\n# UUV - User centric Usecases Validator\r\n\u003ch3 align=\"center\"\u003e  \r\nDiscovering your application by usecase validation  \r\n\u003c/h3\u003e  \r\n\r\n\u003cp align=\"center\"\u003e  \r\nMake test writing fast, understandable by any human understanding English or French.  \r\n\u003c/p\u003e  \r\n\r\n## Benefits\r\n- If used correctly, integrates accessibility from the development stage\r\n- A living documentation is possible because we propose an unified language for developers and non-developers with a [rich dictionary](https://e2e-test-quest.github.io/uuv/docs/category/step-definition) of ready-to-use sentences\r\n- [@uuv/assistant](https://e2e-test-quest.github.io/uuv/docs/tools/uuv-assistant) that facilitates the writing of tests by suggesting the most accessible sentences\r\n- [JetBrains Plugin](https://e2e-test-quest.github.io/uuv/docs/tools/uuv-jetbrains-plugin) that helps you to write and execute your UUV E2E tests from JetBrains IDEs\r\n- Integrates several runtime engines: Cypress / Playwright\r\n- User friendly and standardized execution report([example](https://e2e-test-quest.github.io/kata-e2e-uuv/06-go-further/))\r\n  ### \u003cu\u003eComparison\u003c/u\u003e\r\n| Criteria | Cypress | Playwright | Testing library | UUV |  \r\n|:-: |:-: |:-: |:-: |:-: |  \r\n| User centrism | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |  \r\n| Native accessibility | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |  \r\n| Easy setup configuration for BDD test | :warning: | :warning: | :heavy_minus_sign: | :heavy_check_mark: |  \r\n| Understandable by everyone \u003cbr\u003e (included non dev) | :x: | :x: | :x: | :heavy_check_mark: |  \r\n\r\n### \u003cu\u003eSyntax example\u003c/u\u003e\r\nWith this dom example :\r\n  ```html\r\n  \u003cbody\u003e\r\n  \u003ch1\u003eResult\u003ch1\u003e\r\n  \u003c/body\u003e\r\n```\r\nwe see that the sentence proposed by **UUV is the most understandable** of all\r\n| Library | Syntax |\r\n|:--|:--|\r\n| Cypress  | cy.get('h1').contains('Result') |\r\n| Playwright| await expect(page.getByTitle('Result')).toHaveCount(1) |\r\n| Testing library  | expect(screen.getByTitle(/Result/i)).toBeTruthy() |\r\n| UUV | Then I should see a title named \"Result\"|\r\n\r\n## Documentation\r\n\u003ca href=\"https://e2e-test-quest.github.io/uuv/\"\u003e\u003cimg src=\"https://img.shields.io/badge/documentation-black?\u0026style=for-the-badge\u0026logo=github\u0026logoColor=white\" alt=\"documentation\"/\u003e\u003c/a\u003e\r\n\r\n## Libraries\r\n\u003ca href=\"https://www.npmjs.com/package/@uuv/a11y\"\u003e\u003cimg src=\"https://img.shields.io/badge/@uuv/a11y-uuv library to perform a11y checks-brown?logo=npm\" alt=\"UUV a11y npm library\"/\u003e\u003c/a\u003e  \r\n\u003ca href=\"https://www.npmjs.com/package/@uuv/assistant\"\u003e\u003cimg src=\"https://img.shields.io/badge/@uuv/assistant-Help module that generates the most accessible sentences based on a DOM element selection-yellow?logo=npm\" alt=\"UUV assistant npm library\"/\u003e\u003c/a\u003e  \r\n\u003ca href=\"https://www.npmjs.com/package/@uuv/cypress\"\u003e\u003cimg src=\"https://img.shields.io/badge/@uuv/cypress-Cypress engine to run uuv test-04C38E?logo=npm\" alt=\"UUV cypress npm library\"/\u003e\u003c/a\u003e  \r\n\u003ca href=\"https://www.npmjs.com/package/@uuv/playwright\"\u003e\u003cimg src=\"https://img.shields.io/badge/@uuv/playwright-Playwright engine to run uuv test-1dbb68?logo=npm\" alt=\"UUV playwright npm library\"/\u003e\u003c/a\u003e  \r\n\u003ca href=\"https://www.npmjs.com/package/@uuv/runner-commons\"\u003e\u003cimg src=\"https://img.shields.io/badge/@uuv/commons-shared library to use uuv-blue?logo=npm\" alt=\"UUV commons npm library\"/\u003e\u003c/a\u003e\r\n\r\n## Concepts\r\n\r\nThe `@uuv` library (User centric Usecases Validator) is an ecosystem that simplifies the writing of End to End tests in a BDD approach and a user-centric way.\r\n\r\n### The problem\r\n\r\nAutomated software testing is a growing practice. It adds a better  \r\nlevel of quality on the code of an application by verifying non-regression or validating use cases.\r\n\r\n\r\nThe `End to End test` is a technique used to verify if an application (web,  \r\nmobile...) behaves as expected, from start to finish. It consists in verifying that the end user can complete the main usage scenarios of the application.\r\n\r\nUnlike `unit test` which only aims to verifying the behavior of a function, or  \r\nthe `integration test` which consists in making several modules of the application interact with each other in order to see their good cooperation, the `End to End test` allows to check from a browser (for example for web applications) the behavior of your application according to a set of use cases.\r\n\r\n\u003e During the `E2E test`, the validations consist most of the time in checking the elements returned to the user via the web browser ([DOM](https://developer.mozilla.org/fr/docs/Web/API/Document_Object_Model))\r\n\r\nTherefore, several additional questions arise:\r\n\r\n- How to clearly express use cases?\r\n- For omnichannel applications, how to check your application on different browsers and devices?  \r\n  For omnichannel applications, how do you check your application on different browsers and devices?**\r\n- How to perform relevant DOM checks from a user perspective\r\n\r\n### Our solution\r\n\r\nTo answer the above issues and many others, our solution is to set up a coherent ecosystem based on tools that are references in their field.\r\n\r\n![Ecosystème UUV](./packages/docs/static/img/docs/ecosystem-uuv.png)\r\n\r\n\r\n## License\r\n\r\n[\u003ca href=\"https://github.com/e2e-test-quest/uuv/blob/main/LICENSE\"\u003e  \r\n\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT license\"/\u003e  \r\n\u003c/a\u003e](https://spdx.org/licenses/MIT.html)\r\n\r\nThis project is licensed under the terms of the [MIT license](https://github.com/e2e-test-quest/uuv/blob/main/LICENSE).\r\n\r\n## Sponsorship \u0026 Funding\r\nWe thank the following parties for sponsoring this project:\r\n\r\n\u003ctable\u003e\r\n  \u003ctr\u003e\r\n    \u003ctd align=\"center\" width=\"200px\"\u003e\r\n      \u003ca href=\"https://www.jetbrains.com/\"\u003e\r\n        \u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.png\" alt=\"JetBrains\"\u003e\r\n      \u003c/a\u003e\r\n      \u003cbr\u003e\r\n      \u003cstrong\u003eJetBrains\u003c/strong\u003e\r\n      \u003cbr\u003e\r\n      Providing free open-source licenses for IntelliJ.\r\n    \u003c/td\u003e\r\n    \u003ctd align=\"center\" width=\"200px\"\u003e\r\n      \u003c!-- Placeholder for future sponsor --\u003e\r\n    \u003c/td\u003e\r\n    \u003ctd align=\"center\" width=\"200px\"\u003e\r\n      \u003c!-- Placeholder for future sponsor --\u003e\r\n    \u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n### Support UUV through Open Collective\r\n\r\nIf you want to help UUV grow, you can fund the project directly via [Open Collective](https://opencollective.com/uuv).  \r\nEvery contribution helps us dedicate more time and energy to improving this open-source tool.\r\n\r\n\u003ca href=\"https://opencollective.com/uuv/contribute\" target=\"_blank\"\u003e\r\n  \u003cimg src=\"https://opencollective.com/uuv/contribute/button@2x.png?color=blue\" width=300 /\u003e\r\n\u003c/a\u003e\r\n\r\n\r\nInterested in becoming a sponsor?  \r\nWe welcome sponsorships of all sizes!  \r\nContact us via [GitHub](https://github.com/e2e-test-quest/uuv/discussions) or through [Open Collective](https://opencollective.com/uuv) to discuss opportunities.\r\n\r\n## Authors\r\n\r\n- [@luifr10](https://github.com/luifr10)\r\n- [@stanlee974](https://github.com/stanlee974)\r\n\r\n","funding_links":["https://opencollective.com/uuv","https://opencollective.com/uuv/contribute"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe2e-test-quest%2Fuuv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe2e-test-quest%2Fuuv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe2e-test-quest%2Fuuv/lists"}