Discovering your application by usecase validation Make test writing fast, understandable by any human understanding English or French.
> /plugin marketplace add e2e-test-quest/uuv> /plugin install uuv-e2e-accessibility-test@uuv-e2e-accessibility-test-marketplace
Repo: e2e-test-quest/uuv
What's inside

| Criteria | Cypress | Playwright | Testing library | UUV |
|---|---|---|---|---|
| User centrism | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Native accessibility | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Easy setup configuration for BDD test | :warning: | :warning: | :heavy_minus_sign: | :heavy_check_mark: |
| Understandable by everyone (included non dev) | :x: | :x: | :x: | :heavy_check_mark: |
With this dom example :
<body>
<h1>Result<h1>
</body>
we see that the sentence proposed by UUV is the most understandable of all
| Library | Syntax |
|---|---|
| Cypress | cy.get('h1').contains('Result') |
| Playwright | await expect(page.getByTitle('Result')).toHaveCount(1) |
| Testing library | expect(screen.getByTitle(/Result/i)).toBeTruthy() |
| UUV | Then I should see a title named "Result" |
The @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.
Automated software testing is a growing practice. It adds a better
level of quality on the code of an application by verifying non-regression or validating use cases.
The End to End test is a technique used to verify if an application (web,
mobile...) behaves as expected, from start to finish. It consists in verifying that the end user can complete the main usage scenarios of the application.
Unlike unit test which only aims to verifying the behavior of a function, or
the 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.
During the
E2E test, the validations consist most of the time in checking the elements returned to the user via the web browser (DOM)
Therefore, several additional questions arise:
To 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.

This project is licensed under the terms of the MIT license.
We thank the following parties for sponsoring this project:
If you want to help UUV grow, you can fund the project directly via Open Collective.
Every contribution helps us dedicate more time and energy to improving this open-source tool.
Interested in becoming a sponsor?
We welcome sponsorships of all sizes!
Contact us via GitHub or through Open Collective to discuss opportunities.
__mocks__/
figlet.ts
.claude-plugin/
agents/
uuv-runner.md
marketplace.json
plugin.json
.eslintrc.json
.github/
actions/
nx-run-many/
action.yml
nx-test-flutter-runner/
action.yml
nx-test-web-runner/
action.yml
ISSUE_TEMPLATE/
bug_report.md
feature_request.md
workflows/
uuv-github-ci.yml
.gitignore
.gitlab-ci.yml
.husky/
commit-msg
.kilocodeignore
.npmrc
.nxreleaserc.json
.prettierignore
.prettierrc
.vscode/
extensions.json
settings.json
AGENTS.md
commitlint.config.js
CONTRIBUTING.md
DCO.txt
DEV_SETUP.md
dist/
packages/
.gitkeep
ecosystem-uuv.excalidraw
ecosystem-uuv.png
example/
en-keyboard.feature
en-rgaa.feature
fr-keyboard.feature
fr-rgaa.feature
google.fr.feature
weather-app.feature
gemini-extension.json
gradle/
wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
gradlew
gradlew.bat
jest.config.ts
jest.preset.js
LICENSE
nx.json
package-lock.json
package.json
packages/
a11y/
a11y-dashboard/
.dockerignore
a11y-dashboard.sqlite
CONTRIBUTING.md
Dockerfile
eslint.config.mjs
i18n/
lang/
en.json
LICENSE
nuxt.config.ts
package.json
project.json
src/
app.vue
assets/
css/
styles.css
components/
Breadcrumb.vue
BulkImporter.vue
CardWithCounter.vue
ResultDetails.vue
middleware/
app-details.ts
app-list.ts
usecase-details.ts
models/
index.ts
pages/
apps/
[[appId]]/
index.vue
usecases/
[[usecaseId]]/
index.vue
index.vue
plugins/
vue-masonry.ts
public/
.gitkeep
favicon.ico
uuv.png
server/
api/
apps/
apps.get.ts
apps.post.ts
[appId]/
[appId].delete.ts
[appId].get.ts
usecases/
usecases.get.ts
usecases.post.ts
[usecaseId]/
[usecaseId].delete.ts
[usecaseId].get.ts
results/
results.get.ts
results.post.ts
[resultId].delete.ts
[resultId].get.ts
bulk.post.ts
plugins/
database.ts
tsconfig.json
utils/
computeCounter.ts
createTooltips.ts
filterIssuesByType.ts
getThemeFromResultCount.ts
toFormattedDate.ts
tests/
docker-compose.yml
tsconfig.app.json
tsconfig.json
tsconfig.spec.json
vitest.config.ts
vitest.workspace.ts
.eslintignore
.eslintrc.js
CHANGELOG.md
CONTRIBUTING.md
docs/
diagram-a11y-rgaa.excalidraw
diagram-a11y-rgaa.png
jest-setup.js
jest.config.ts
LICENSE
package.json
project.json
README.md
src/
index.ts
lib/
engine/
engine.ts
index.ts
model/
checker.ts
checklist-checker.ts
index.ts
reference.ts
result.spec.ts
result.ts
rule.ts
uuv-a11y-result.json
uuv-a11y-result.ts
query/
00-query.ts
accessible-name.query.ts
by-role.query.ts
by-sibling.query.ts
by-tag.query.ts
compliant-attributes/
attribut-specification.ts
attribute-checker.ts
compliant-attributes.query.ts
doctype.query.ts
form.query.ts
index.ts
operators/
and-query.ts
operator-query.ts
or-query.ts
reference/
alix/
alix-checker.ts
alix-rules.ts
index.ts
index.ts
rgaa/
common.ts
coverage/
coverage-helper.spec.ts
coverage-helper.ts
coverage-statement.json
index.ts
rgaa_4.1.criteres.json
rgaa-checker.ts
rgaa-reference.ts
rules/
1-image.ts
10-display.ts
11-form.ts
12-navigation.ts
13-visit.ts
2-frame.ts
3-color.ts
4-multimedia.ts
5-table.ts
6-link.ts
7-script.ts
8-required-element.ts
9-structure.ts
selector-helper.spec.ts
selector-helper.ts
wcag/
index.ts
wcag-checker.ts
wcag-helper.ts
STRUCTURE.md
tests/
checker/
1-image/
image-checker.spec.ts
image-ko.html
image-manual.html
image-ok.html
warning.png
2-frame/
frame-checker.spec.ts
frame.html
iframe.html
5-table/
table-checker.spec.ts
table-presentation.html
table-with-header.html
table.html
6-link/
link-checker.spec.ts
link.html
8-required-element/
dir.html
doctype-after-html.html
html-lang.html
html-multi-lang.html
html-with-title.html
html-without-lang.html
html-xml-lang.html
required-element-checker.spec.ts
without-doctype.html
ExpectHelper.ts
rgaa-checker.spec.ts
commons-test.ts
query/
accessible-name/
accessible-name.html
accessible-name.query.spec.ts
by-role/
by-role.html
by-role.query.spec.ts
by-sibling/
by-sibling_img.html
by-sibling_input_reset.html
by-sibling.query.spec.ts
by-tag/
by-tag.html
by-tag.query.spec.ts
compliant-attributes/
compliant-attributes.html
compliant-attributes.spec.ts
doctype/
doctype-ko.html
doctype-ok.html
doctype.query.spec.ts
operators/
operator-and.html
operator-or.html
operator.query.spec.ts
test-rgaa.html
tsconfig.json
tsconfig.lib.json
tsconfig.spec.json
watch.ts
webpack.config.js
assistant/
assistant-ai/
.env
.gitignore
.python-version
CHANGELOG.md
DESCRIPTION.md
DEV_SETUP.md
project.json
pyproject.toml
README.md
tests/
__init__.py
image-dataset.json
optimizer.py
test_image_classifier.py
uuv_assistant_ai/
__init__.py
image_classifier/
__init__.py
agent.py
model.py
sub_agents/
__init__.py
image_classifier.py
image_describer.py
main.py
server.py
uv.lock
assistant-desktop/
.gitignore
.vscode/
extensions.json
settings.json
CHANGELOG.md
package.json
project.json
README.md
src/
src-tauri/
.gitignore
build.rs
capabilities/
default.json
Cargo.lock
Cargo.toml
icons/
icon.ico
icon.png
src/
lib.rs
main.rs
tauri.conf.json
app.html
routes/
+layout.ts
+page.svelte
static/
background.jpg
favicon.png
svelte.config.js
tsconfig.json
vite.config.js
.env
.eslintignore
.eslintrc.js
.gitignore
bundle-script.js
CHANGELOG.md
compute-conf.js
CONTRIBUTING.md
DCO.txt
index.html
jest.config.ts
launcher/
conf.json
index.ts
uuv-assistant-launcher.ts
uuv-assistant.ts
LICENSE
package.json
project.json
public/
favicon.ico
images/
hand_muscles.jpg
random_img.jpg
random_img2.svg
random_img3.jpg
logo192.png
logo512.png
manifest.json
robots.txt
README.md
src/
assets/
ai.json
chatbot-ai.json
datatable.json
form.json
keyboard.json
modal.json
mouse.json
uuvLogo.json
Commons.ts
component/
result/
UuvAssistantResult.tsx
UuvAssistantResultAIAnalysis.tsx
... 705 moreFAQ
uuv-e2e-accessibility-test is a Claude Code plugin with hand-picked skills for testing work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.