@uuv/cypress 2.57.0 → 2.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cucumber/step_definitions/cypress/_.common.d.ts +3 -0
- package/dist/cucumber/step_definitions/cypress/_.common.js +23 -0
- package/dist/cucumber/step_definitions/cypress/generated/_en-generated-cucumber-steps-definition.js +36 -0
- package/dist/cucumber/step_definitions/cypress/generated/_fr-generated-cucumber-steps-definition.js +36 -0
- package/dist/cucumber/step_definitions/cypress/generated/enriched/fr/_fr-generated-steps-definition_table.js +8 -8
- package/package.json +2 -2
- package/src/cucumber/step_definitions/cypress/generated/_en-generated-cucumber-steps-definition.ts +50 -1
- package/src/cucumber/step_definitions/cypress/generated/_fr-generated-cucumber-steps-definition.ts +50 -1
- package/src/cucumber/step_definitions/cypress/generated/enriched/fr/_fr-generated-steps-definition_table.ts +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [2.59.0](https://github.com/e2e-test-quest/uuv/compare/runner-cypress-v2.58.0...runner-cypress-v2.59.0) (2025-07-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* update doc for grid and table sentences, [#1029](https://github.com/e2e-test-quest/uuv/issues/1029) ([751e12a](https://github.com/e2e-test-quest/uuv/commit/751e12ab912fa6890717526a4b5e15be7aeafb91))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add treegrid sentence, [#1029](https://github.com/e2e-test-quest/uuv/issues/1029) ([847462e](https://github.com/e2e-test-quest/uuv/commit/847462e75fd733ee332f197a1b72b331c0fe5b98))
|
|
12
|
+
|
|
13
|
+
# [2.58.0](https://github.com/e2e-test-quest/uuv/compare/runner-cypress-v2.57.0...runner-cypress-v2.58.0) (2025-07-01)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add grid and table sentences, [#1029](https://github.com/e2e-test-quest/uuv/issues/1029) ([97f7330](https://github.com/e2e-test-quest/uuv/commit/97f7330a50926a872275c4f5ad026920174a9592))
|
|
19
|
+
|
|
1
20
|
# [2.57.0](https://github.com/e2e-test-quest/uuv/compare/runner-cypress-v2.56.0...runner-cypress-v2.57.0) (2025-06-08)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -14,11 +14,14 @@ import { ByRoleOptions } from "@testing-library/cypress";
|
|
|
14
14
|
import { Context } from "./_context";
|
|
15
15
|
import Chainable = Cypress.Chainable;
|
|
16
16
|
import { A11yReferenceEnum } from "@uuv/a11y";
|
|
17
|
+
import { DataTable } from "@badeball/cypress-cucumber-preprocessor";
|
|
17
18
|
export declare const shouldGenerateA11yReport: () => boolean;
|
|
18
19
|
export declare const getA11yResultFilePath: () => string;
|
|
19
20
|
export declare const uuvGetContext: () => Chainable<Context>;
|
|
20
21
|
export declare function uuvCheckContextWithinFocusedElement(dontThrowError?: boolean): Cypress.Chainable<Context>;
|
|
21
22
|
export declare function uuvPatchContext(partOfContext: any): Cypress.Chainable<Context>;
|
|
23
|
+
export declare function removeHeaderSeparatorLine(pExpectedElementsOfList: DataTable): string[][];
|
|
24
|
+
export declare function expectTableToHaveContent(expectedElementsOfList: string[][], cellAccessibleRole: string): void;
|
|
22
25
|
export declare function uuvFindAllByRole(role: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>;
|
|
23
26
|
export declare function uuvFindByRole(role: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>;
|
|
24
27
|
export declare function uuvFindByLabelText(labelTextToSearch: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>;
|
|
@@ -15,6 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.uuvGetContext = exports.getA11yResultFilePath = exports.shouldGenerateA11yReport = void 0;
|
|
16
16
|
exports.uuvCheckContextWithinFocusedElement = uuvCheckContextWithinFocusedElement;
|
|
17
17
|
exports.uuvPatchContext = uuvPatchContext;
|
|
18
|
+
exports.removeHeaderSeparatorLine = removeHeaderSeparatorLine;
|
|
19
|
+
exports.expectTableToHaveContent = expectTableToHaveContent;
|
|
18
20
|
exports.uuvFindAllByRole = uuvFindAllByRole;
|
|
19
21
|
exports.uuvFindByRole = uuvFindByRole;
|
|
20
22
|
exports.uuvFindByLabelText = uuvFindByLabelText;
|
|
@@ -63,6 +65,27 @@ function addContextOptions(context, roleOptions) {
|
|
|
63
65
|
};
|
|
64
66
|
return Object.assign(roleOptions, retour);
|
|
65
67
|
}
|
|
68
|
+
function removeHeaderSeparatorLine(pExpectedElementsOfList) {
|
|
69
|
+
const expectedElementsOfList = pExpectedElementsOfList.raw();
|
|
70
|
+
if (expectedElementsOfList.length > 1) {
|
|
71
|
+
expectedElementsOfList.splice(1, 1);
|
|
72
|
+
}
|
|
73
|
+
return expectedElementsOfList;
|
|
74
|
+
}
|
|
75
|
+
function expectTableToHaveContent(expectedElementsOfList, cellAccessibleRole) {
|
|
76
|
+
const actualTableContent = [];
|
|
77
|
+
// eslint-disable-next-line cypress/unsafe-to-chain-command
|
|
78
|
+
cy.findAllByRole("row").each(($row, index) => {
|
|
79
|
+
const cellRole = index === 0 ? "columnheader" : cellAccessibleRole;
|
|
80
|
+
cy.findAllByRole(cellRole, { container: $row }).then(($cells) => {
|
|
81
|
+
const ligne = Array.from($cells, cell => cell.textContent?.trim() ?? "");
|
|
82
|
+
actualTableContent.push(ligne);
|
|
83
|
+
});
|
|
84
|
+
}).then(() => {
|
|
85
|
+
assert.equal(actualTableContent.length, expectedElementsOfList.length);
|
|
86
|
+
assert.deepEqual(actualTableContent, expectedElementsOfList, `Expected the table content ${JSON.stringify(actualTableContent)} to equals ${JSON.stringify(expectedElementsOfList)}`);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
66
89
|
function abstractFindBy(callBackFunction, inputToSearch, inputOptions) {
|
|
67
90
|
return cy.uuvGetContext().then(context => {
|
|
68
91
|
// console.log(contextAlias, context);
|
package/dist/cucumber/step_definitions/cypress/generated/_en-generated-cucumber-steps-definition.js
CHANGED
|
@@ -385,6 +385,42 @@ const __common_1 = require("./../_.common");
|
|
|
385
385
|
});
|
|
386
386
|
});
|
|
387
387
|
});
|
|
388
|
+
/**
|
|
389
|
+
* Checks that there is a grid with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/grid.html"\nThen I should see a grid named "HTML Grid Example" and containing\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
390
|
+
* */
|
|
391
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`I should see a grid named {string} and containing`, function (expectedListName, pExpectedElementsOfList) {
|
|
392
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
393
|
+
cy.uuvFindByRole("grid", { name: expectedListName })
|
|
394
|
+
.uuvFoundedElement()
|
|
395
|
+
.should("exist")
|
|
396
|
+
.within(() => {
|
|
397
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "gridcell");
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
/**
|
|
401
|
+
* Checks that there is a treegrid with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/treegrid.html"\nThen I should see a treegrid named "HTML Treegrid Example" and containing\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
402
|
+
* */
|
|
403
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`I should see a treegrid named {string} and containing`, function (expectedListName, pExpectedElementsOfList) {
|
|
404
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
405
|
+
cy.uuvFindByRole("treegrid", { name: expectedListName })
|
|
406
|
+
.uuvFoundedElement()
|
|
407
|
+
.should("exist")
|
|
408
|
+
.within(() => {
|
|
409
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "gridcell");
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
/**
|
|
413
|
+
* Checks that there is a table with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/table.html"\nThen I should see a table named "test-list" and containing\n| Company | Contact | Country |\n| ----------------------------- | ---------------- | ------- |\n| Alfreds Futterkiste | Maria Anders | Germany |\n| Centro comercial Moctezuma | Francisco Chang | Mexico |\n| Ernst Handel | Roland Mendel | Austria |\n| Island Trading | Helen Bennett | UK |\n| Laughing Bacchus Winecellars | Yoshi Tannamuri | Canada |\n| Magazzini Alimentari Riuniti | Giovanni Rovelli | Italy |\n```
|
|
414
|
+
* */
|
|
415
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`I should see a table named {string} and containing`, function (expectedListName, pExpectedElementsOfList) {
|
|
416
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
417
|
+
cy.uuvFindByRole("table", { name: expectedListName })
|
|
418
|
+
.uuvFoundedElement()
|
|
419
|
+
.should("exist")
|
|
420
|
+
.within(() => {
|
|
421
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "cell");
|
|
422
|
+
});
|
|
423
|
+
});
|
|
388
424
|
/**
|
|
389
425
|
* Checks Html attributes of the selected element
|
|
390
426
|
* */
|
package/dist/cucumber/step_definitions/cypress/generated/_fr-generated-cucumber-steps-definition.js
CHANGED
|
@@ -385,6 +385,42 @@ const __common_1 = require("./../_.common");
|
|
|
385
385
|
});
|
|
386
386
|
});
|
|
387
387
|
});
|
|
388
|
+
/**
|
|
389
|
+
* Vérifie qu'il existe une grille (grid) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/grid.html"\nAlors je dois voir une liste nommée "HTML Grid Example" et contenant\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
390
|
+
* */
|
|
391
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir une grille nommée {string} et contenant`, function (expectedListName, pExpectedElementsOfList) {
|
|
392
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
393
|
+
cy.uuvFindByRole("grid", { name: expectedListName })
|
|
394
|
+
.uuvFoundedElement()
|
|
395
|
+
.should("exist")
|
|
396
|
+
.within(() => {
|
|
397
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "gridcell");
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
/**
|
|
401
|
+
* Vérifie qu'il existe une grille arborescente (treegrid) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/treegrid.html"\nAlors je dois voir une liste nommée "HTML Treegrid Example" et contenant\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
402
|
+
* */
|
|
403
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir une grille arborescente nommée {string} et contenant`, function (expectedListName, pExpectedElementsOfList) {
|
|
404
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
405
|
+
cy.uuvFindByRole("treegrid", { name: expectedListName })
|
|
406
|
+
.uuvFoundedElement()
|
|
407
|
+
.should("exist")
|
|
408
|
+
.within(() => {
|
|
409
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "gridcell");
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
/**
|
|
413
|
+
* Vérifie qu'il existe un tableau (table) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/table.html"\nAlors je dois voir un tableau nommée "HTML Table Example" et contenant\n| Company | Contact | Country |\n| ----------------------------- | ---------------- | ------- |\n| Alfreds Futterkiste | Maria Anders | Germany |\n| Centro comercial Moctezuma | Francisco Chang | Mexico |\n| Ernst Handel | Roland Mendel | Austria |\n| Island Trading | Helen Bennett | UK |\n| Laughing Bacchus Winecellars | Yoshi Tannamuri | Canada |\n| Magazzini Alimentari Riuniti | Giovanni Rovelli | Italy |\n```
|
|
414
|
+
* */
|
|
415
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir un tableau nommé {string} et contenant`, function (expectedListName, pExpectedElementsOfList) {
|
|
416
|
+
const expectedElementsOfList = (0, __common_1.removeHeaderSeparatorLine)(pExpectedElementsOfList);
|
|
417
|
+
cy.uuvFindByRole("table", { name: expectedListName })
|
|
418
|
+
.uuvFoundedElement()
|
|
419
|
+
.should("exist")
|
|
420
|
+
.within(() => {
|
|
421
|
+
(0, __common_1.expectTableToHaveContent)(expectedElementsOfList, "cell");
|
|
422
|
+
});
|
|
423
|
+
});
|
|
388
424
|
/**
|
|
389
425
|
* Vérifie des attributs Html de l'élément sélectionné
|
|
390
426
|
* */
|
|
@@ -22,19 +22,19 @@ const core_engine_1 = require("../../../core-engine");
|
|
|
22
22
|
/**
|
|
23
23
|
* Sélectionne l'élément ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) sont spécifiés <br />⚠ pensez à déselectionner l'élement avec <b>[je reinitialise le contexte](#je-reinitialise-le-contexte)</b> si vous n'agissez plus dessus
|
|
24
24
|
* */
|
|
25
|
-
(0, cypress_cucumber_preprocessor_1.When)(`je vais à l'intérieur
|
|
25
|
+
(0, cypress_cucumber_preprocessor_1.When)(`je vais à l'intérieur du tableau nommé {string}`, function (name) {
|
|
26
26
|
(0, core_engine_1.withinRoleAndName)("table", name);
|
|
27
27
|
});
|
|
28
28
|
/**
|
|
29
29
|
* Vérifie l'existence d'un élément Html ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) spécifiés
|
|
30
30
|
* */
|
|
31
|
-
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir
|
|
31
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir un tableau nommé {string}`, function (name) {
|
|
32
32
|
(0, core_engine_1.findWithRoleAndName)("table", name);
|
|
33
33
|
});
|
|
34
34
|
/**
|
|
35
35
|
* Vérifie l'inexistence d'un élément Html ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) spécifiés
|
|
36
36
|
* */
|
|
37
|
-
(0, cypress_cucumber_preprocessor_1.Then)(`je ne dois pas voir
|
|
37
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je ne dois pas voir un tableau nommé {string}`, function (name) {
|
|
38
38
|
(0, core_engine_1.notFoundWithRoleAndName)("table", name);
|
|
39
39
|
});
|
|
40
40
|
// End of General Section
|
|
@@ -42,13 +42,13 @@ const core_engine_1 = require("../../../core-engine");
|
|
|
42
42
|
/**
|
|
43
43
|
* Saisie de la phrase passée en paramètre dans le champ spécifié (utile par exemple pour remplir un champ de formulaire).
|
|
44
44
|
* */
|
|
45
|
-
(0, cypress_cucumber_preprocessor_1.When)(`je saisie le(s) mot(s) {string} dans le tableau
|
|
45
|
+
(0, cypress_cucumber_preprocessor_1.When)(`je saisie le(s) mot(s) {string} dans le tableau nommé {string}`, function (textToType, name) {
|
|
46
46
|
cy.uuvFindByRole("table", { name: name }).uuvFoundedElement().type(textToType);
|
|
47
47
|
});
|
|
48
48
|
/**
|
|
49
49
|
* Saisie de la phrase passée en paramètre dans le champ spécifié (utile par exemple pour remplir un champ de formulaire).
|
|
50
50
|
* */
|
|
51
|
-
(0, cypress_cucumber_preprocessor_1.When)(`j'entre la valeur {string} dans le tableau
|
|
51
|
+
(0, cypress_cucumber_preprocessor_1.When)(`j'entre la valeur {string} dans le tableau nommé {string}`, function (textToType, name) {
|
|
52
52
|
cy.uuvFindByRole("table", { name: name }).uuvFoundedElement().type(textToType);
|
|
53
53
|
});
|
|
54
54
|
// End of Type Section
|
|
@@ -56,19 +56,19 @@ const core_engine_1 = require("../../../core-engine");
|
|
|
56
56
|
/**
|
|
57
57
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) et le contenu spécifiés
|
|
58
58
|
* */
|
|
59
|
-
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir
|
|
59
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir un tableau nommé {string} et contenant {string}`, function (name, expectedTextContent) {
|
|
60
60
|
(0, core_engine_1.findWithRoleAndNameAndContent)("table", name, expectedTextContent);
|
|
61
61
|
});
|
|
62
62
|
/**
|
|
63
63
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/), le contenu spécifiés et avec l'attribut disabled à false
|
|
64
64
|
* */
|
|
65
|
-
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir
|
|
65
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir un tableau nommé {string} et contenant {string} inactif`, function (name, expectedTextContent) {
|
|
66
66
|
(0, core_engine_1.findWithRoleAndNameAndContentDisable)("table", name, expectedTextContent);
|
|
67
67
|
});
|
|
68
68
|
/**
|
|
69
69
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/), le contenu spécifiés et avec l'attribut disabled à true
|
|
70
70
|
* */
|
|
71
|
-
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir
|
|
71
|
+
(0, cypress_cucumber_preprocessor_1.Then)(`je dois voir un tableau nommé {string} et contenant {string} actif`, function (name, expectedTextContent) {
|
|
72
72
|
(0, core_engine_1.findWithRoleAndNameAndContentEnable)("table", name, expectedTextContent);
|
|
73
73
|
});
|
|
74
74
|
// End of Content Section
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uuv/cypress",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.59.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"author": "Louis Fredice NJAKO MOLOM (https://github.com/luifr10) & Stanley SERVICAL (https://github.com/stanlee974)",
|
|
6
6
|
"description": "A solution to facilitate the writing and execution of E2E tests understandable by any human being using cucumber(BDD) and cypress",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@cypress/webpack-preprocessor": "6.0.4",
|
|
49
49
|
"@testing-library/cypress": "10.0.3",
|
|
50
50
|
"@uuv/a11y": "1.0.0-beta.71",
|
|
51
|
-
"@uuv/runner-commons": "2.
|
|
51
|
+
"@uuv/runner-commons": "2.53.0",
|
|
52
52
|
"axe-core": "4.10.3",
|
|
53
53
|
"chai-subset": "^1.6.0",
|
|
54
54
|
"cypress": "14.4.0",
|
package/src/cucumber/step_definitions/cypress/generated/_en-generated-cucumber-steps-definition.ts
CHANGED
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
withinRoleAndName
|
|
33
33
|
} from "../core-engine";
|
|
34
34
|
import { A11yReferenceEnum } from "@uuv/a11y";
|
|
35
|
-
import { pressKey } from "./../_.common";
|
|
35
|
+
import { expectTableToHaveContent, pressKey, removeHeaderSeparatorLine } from "./../_.common";
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Navigate to the Uri passed as a argument (full url consisting of the BASE_URL + Uri) or navigate to Url if begin with http:// or https://
|
|
@@ -488,6 +488,55 @@ Then(
|
|
|
488
488
|
}
|
|
489
489
|
);
|
|
490
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Checks that there is a grid with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/grid.html"\nThen I should see a grid named "HTML Grid Example" and containing\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
493
|
+
* */
|
|
494
|
+
Then(
|
|
495
|
+
`I should see a grid named {string} and containing`,
|
|
496
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
497
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
498
|
+
cy.uuvFindByRole("grid", { name: expectedListName })
|
|
499
|
+
.uuvFoundedElement()
|
|
500
|
+
.should("exist")
|
|
501
|
+
.within(() => {
|
|
502
|
+
expectTableToHaveContent(expectedElementsOfList, "gridcell");
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Checks that there is a treegrid with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/treegrid.html"\nThen I should see a treegrid named "HTML Treegrid Example" and containing\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
509
|
+
* */
|
|
510
|
+
Then(
|
|
511
|
+
`I should see a treegrid named {string} and containing`,
|
|
512
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
513
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
514
|
+
cy.uuvFindByRole("treegrid", { name: expectedListName })
|
|
515
|
+
.uuvFoundedElement()
|
|
516
|
+
.should("exist")
|
|
517
|
+
.within(() => {
|
|
518
|
+
expectTableToHaveContent(expectedElementsOfList, "gridcell");
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
);
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Checks that there is a table with the specified [name](https://russmaxdesign.github.io/html-elements-names/) containing list items.<br/> <u>Example</u>\n```gherkin\nWhen I visit path "https://e2e-test-quest.github.io/simple-webapp/table.html"\nThen I should see a table named "test-list" and containing\n| Company | Contact | Country |\n| ----------------------------- | ---------------- | ------- |\n| Alfreds Futterkiste | Maria Anders | Germany |\n| Centro comercial Moctezuma | Francisco Chang | Mexico |\n| Ernst Handel | Roland Mendel | Austria |\n| Island Trading | Helen Bennett | UK |\n| Laughing Bacchus Winecellars | Yoshi Tannamuri | Canada |\n| Magazzini Alimentari Riuniti | Giovanni Rovelli | Italy |\n```
|
|
526
|
+
* */
|
|
527
|
+
Then(
|
|
528
|
+
`I should see a table named {string} and containing`,
|
|
529
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
530
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
531
|
+
cy.uuvFindByRole("table", { name: expectedListName })
|
|
532
|
+
.uuvFoundedElement()
|
|
533
|
+
.should("exist")
|
|
534
|
+
.within(() => {
|
|
535
|
+
expectTableToHaveContent(expectedElementsOfList, "cell");
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
);
|
|
539
|
+
|
|
491
540
|
/**
|
|
492
541
|
* Checks Html attributes of the selected element
|
|
493
542
|
* */
|
package/src/cucumber/step_definitions/cypress/generated/_fr-generated-cucumber-steps-definition.ts
CHANGED
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
withinRoleAndName
|
|
33
33
|
} from "../core-engine";
|
|
34
34
|
import { A11yReferenceEnum } from "@uuv/a11y";
|
|
35
|
-
import { pressKey } from "./../_.common";
|
|
35
|
+
import { expectTableToHaveContent, pressKey, removeHeaderSeparatorLine } from "./../_.common";
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Navigue vers l'Uri passé en paramètre (url complète étant constituée de la BASE_URL + Uri) ou navigue vers l'Url si ça commence par http:// ou https://
|
|
@@ -488,6 +488,55 @@ Then(
|
|
|
488
488
|
}
|
|
489
489
|
);
|
|
490
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Vérifie qu'il existe une grille (grid) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/grid.html"\nAlors je dois voir une liste nommée "HTML Grid Example" et contenant\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
493
|
+
* */
|
|
494
|
+
Then(
|
|
495
|
+
`je dois voir une grille nommée {string} et contenant`,
|
|
496
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
497
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
498
|
+
cy.uuvFindByRole("grid", { name: expectedListName })
|
|
499
|
+
.uuvFoundedElement()
|
|
500
|
+
.should("exist")
|
|
501
|
+
.within(() => {
|
|
502
|
+
expectTableToHaveContent(expectedElementsOfList, "gridcell");
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Vérifie qu'il existe une grille arborescente (treegrid) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/treegrid.html"\nAlors je dois voir une liste nommée "HTML Treegrid Example" et contenant\n| Make | Model | Price |\n| ------------ | ------- | ------ |\n| Toyota | Celica | 35000 |\n| Ford | Mondeo | 32000 |\n| Porsche | Boxster | 72000 |\n| BMW | M50 | 60000 |\n| Aston Martin | DBX | 190000 |\n```
|
|
509
|
+
* */
|
|
510
|
+
Then(
|
|
511
|
+
`je dois voir une grille arborescente nommée {string} et contenant`,
|
|
512
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
513
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
514
|
+
cy.uuvFindByRole("treegrid", { name: expectedListName })
|
|
515
|
+
.uuvFoundedElement()
|
|
516
|
+
.should("exist")
|
|
517
|
+
.within(() => {
|
|
518
|
+
expectTableToHaveContent(expectedElementsOfList, "gridcell");
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
);
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Vérifie qu'il existe un tableau (table) avec le nom et les éléments spécifiés.<br/> <u>Exemple</u>\n```gherkin\nQuand je visite l'Url "https://e2e-test-quest.github.io/simple-webapp/table.html"\nAlors je dois voir un tableau nommée "HTML Table Example" et contenant\n| Company | Contact | Country |\n| ----------------------------- | ---------------- | ------- |\n| Alfreds Futterkiste | Maria Anders | Germany |\n| Centro comercial Moctezuma | Francisco Chang | Mexico |\n| Ernst Handel | Roland Mendel | Austria |\n| Island Trading | Helen Bennett | UK |\n| Laughing Bacchus Winecellars | Yoshi Tannamuri | Canada |\n| Magazzini Alimentari Riuniti | Giovanni Rovelli | Italy |\n```
|
|
526
|
+
* */
|
|
527
|
+
Then(
|
|
528
|
+
`je dois voir un tableau nommé {string} et contenant`,
|
|
529
|
+
function(expectedListName: string, pExpectedElementsOfList: DataTable) {
|
|
530
|
+
const expectedElementsOfList = removeHeaderSeparatorLine(pExpectedElementsOfList);
|
|
531
|
+
cy.uuvFindByRole("table", { name: expectedListName })
|
|
532
|
+
.uuvFoundedElement()
|
|
533
|
+
.should("exist")
|
|
534
|
+
.within(() => {
|
|
535
|
+
expectTableToHaveContent(expectedElementsOfList, "cell");
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
);
|
|
539
|
+
|
|
491
540
|
/**
|
|
492
541
|
* Vérifie des attributs Html de l'élément sélectionné
|
|
493
542
|
* */
|
|
@@ -36,14 +36,14 @@ import { pressKey } from "../../../_.common";
|
|
|
36
36
|
/**
|
|
37
37
|
* Sélectionne l'élément ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) sont spécifiés <br />⚠ pensez à déselectionner l'élement avec <b>[je reinitialise le contexte](#je-reinitialise-le-contexte)</b> si vous n'agissez plus dessus
|
|
38
38
|
* */
|
|
39
|
-
When(`je vais à l'intérieur
|
|
39
|
+
When(`je vais à l'intérieur du tableau nommé {string}`, function(name: string) {
|
|
40
40
|
withinRoleAndName("table", name);
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Vérifie l'existence d'un élément Html ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) spécifiés
|
|
45
45
|
* */
|
|
46
|
-
Then(`je dois voir
|
|
46
|
+
Then(`je dois voir un tableau nommé {string}`, function(name: string) {
|
|
47
47
|
findWithRoleAndName("table", name);
|
|
48
48
|
});
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ Then(`je dois voir une tableau nommée {string}`, function(name: string) {
|
|
|
51
51
|
* Vérifie l'inexistence d'un élément Html ayant le rôle table et le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) spécifiés
|
|
52
52
|
* */
|
|
53
53
|
Then(
|
|
54
|
-
`je ne dois pas voir
|
|
54
|
+
`je ne dois pas voir un tableau nommé {string}`,
|
|
55
55
|
function(name: string) {
|
|
56
56
|
notFoundWithRoleAndName("table", name);
|
|
57
57
|
}
|
|
@@ -64,14 +64,14 @@ Then(
|
|
|
64
64
|
/**
|
|
65
65
|
* Saisie de la phrase passée en paramètre dans le champ spécifié (utile par exemple pour remplir un champ de formulaire).
|
|
66
66
|
* */
|
|
67
|
-
When(`je saisie le(s) mot(s) {string} dans le tableau
|
|
67
|
+
When(`je saisie le(s) mot(s) {string} dans le tableau nommé {string}`, function(textToType: string, name: string) {
|
|
68
68
|
cy.uuvFindByRole("table", { name: name }).uuvFoundedElement().type(textToType);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* Saisie de la phrase passée en paramètre dans le champ spécifié (utile par exemple pour remplir un champ de formulaire).
|
|
73
73
|
* */
|
|
74
|
-
When(`j'entre la valeur {string} dans le tableau
|
|
74
|
+
When(`j'entre la valeur {string} dans le tableau nommé {string}`, function(textToType: string, name: string) {
|
|
75
75
|
cy.uuvFindByRole("table", { name: name }).uuvFoundedElement().type(textToType);
|
|
76
76
|
});
|
|
77
77
|
|
|
@@ -82,7 +82,7 @@ When(`j'entre la valeur {string} dans le tableau nommée {string}`, function(tex
|
|
|
82
82
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/) et le contenu spécifiés
|
|
83
83
|
* */
|
|
84
84
|
Then(
|
|
85
|
-
`je dois voir
|
|
85
|
+
`je dois voir un tableau nommé {string} et contenant {string}`,
|
|
86
86
|
function(name: string, expectedTextContent: string) {
|
|
87
87
|
findWithRoleAndNameAndContent("table", name, expectedTextContent);
|
|
88
88
|
}
|
|
@@ -92,7 +92,7 @@ Then(
|
|
|
92
92
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/), le contenu spécifiés et avec l'attribut disabled à false
|
|
93
93
|
* */
|
|
94
94
|
Then(
|
|
95
|
-
`je dois voir
|
|
95
|
+
`je dois voir un tableau nommé {string} et contenant {string} inactif`,
|
|
96
96
|
function(name: string, expectedTextContent: string) {
|
|
97
97
|
findWithRoleAndNameAndContentDisable("table", name, expectedTextContent);
|
|
98
98
|
}
|
|
@@ -102,7 +102,7 @@ Then(
|
|
|
102
102
|
* Vérifie l'existence d'un élément Html ayant le rôle table, le [nom accessible](https://russmaxdesign.github.io/html-elements-names/), le contenu spécifiés et avec l'attribut disabled à true
|
|
103
103
|
* */
|
|
104
104
|
Then(
|
|
105
|
-
`je dois voir
|
|
105
|
+
`je dois voir un tableau nommé {string} et contenant {string} actif`,
|
|
106
106
|
function(name: string, expectedTextContent: string) {
|
|
107
107
|
findWithRoleAndNameAndContentEnable("table", name, expectedTextContent);
|
|
108
108
|
}
|