diff --git a/.gitignore b/.gitignore index 53ff4ed..12be62a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ .idea .editorconfig .cursor +.claude/ # npm node_modules diff --git a/src/pages/adp-site-metadata.json b/src/pages/adp-site-metadata.json new file mode 100644 index 0000000..59fd870 --- /dev/null +++ b/src/pages/adp-site-metadata.json @@ -0,0 +1 @@ +{"total":3,"offset":0,"limit":3,"data":[{"key":"contributors","value":"src/pages/contributors.json"},{"key":"get-credentials","value":null},{"key":"site-wide-banner","value":null}],":type":"sheet"} \ No newline at end of file diff --git a/src/pages/contributors.json b/src/pages/contributors.json new file mode 100644 index 0000000..25c9639 --- /dev/null +++ b/src/pages/contributors.json @@ -0,0 +1 @@ +{"total":85,"offset":0,"limit":85,"data":[{"page":"/","avatars":["https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/57922?v=4"],"lastUpdated":"12/2/2025"},{"page":"/config","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4"],"lastUpdated":"12/4/2025"},{"page":"/functional-testing-framework/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/backward-incompatible-changes","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/cicd","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/commands/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/commands/codeception","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/commands/mftf","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/28712019?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/configuration","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/credentials","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/7163132?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/custom-helpers","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/22/2024"},{"page":"/functional-testing-framework/data","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/debugging","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/extending","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/getting-started","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/git-vs-composer-install","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/interactive-pause","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/merge-points/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/merge-points/extend-action-groups","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/merge-points/extend-data","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/merge-points/extend-tests","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/merge-points/merge-action-groups","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/merge-points/merge-data","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/merge-points/merge-pages","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/merge-points/merge-sections","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/merge-points/merge-tests","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/merging","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/metadata","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/29927318?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/mftf-tests-packaging","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/page","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/4/2025"},{"page":"/functional-testing-framework/reporting","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/resources/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/section/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/section/locator-functions","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/section/parameterized-selectors","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/suite","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/test-writing/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/test-writing/best-practices","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/4/2025"},{"page":"/functional-testing-framework/test-writing/selectors","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/test-writing/test-isolation","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/test-writing/test-modularity","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test-writing/test-prep","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test-writing/tips-tricks","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test-writing/using-suites","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/test/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/test/action-group-best-practices","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/functional-testing-framework/test/action-groups","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test/actions","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test/annotations","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/test/assertions","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/troubleshooting","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/two-factor-authentication","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/87003041?v=4","https://avatars.githubusercontent.com/u/6391769?v=4","https://avatars.githubusercontent.com/u/665104?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/functional-testing-framework/update","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/functional-testing-framework/versioning","avatars":["https://avatars.githubusercontent.com/u/28712019?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"5/7/2025"},{"page":"/guide/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/45772453?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/97607802?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/4518013?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/97607802?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/930199?v=4","https://avatars.githubusercontent.com/u/11199531?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/magento-app-area","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/magento-app-isolation","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/integration/annotations/magento-cache","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/600190?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/magento-components-dir","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/magento-config-fixture","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/annotations/magento-data-fixture","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/4/2025"},{"page":"/guide/integration/annotations/magento-db-isolation","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/integration/annotations/magento-depends","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/guide/integration/attributes/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/11199531?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/app-area","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/34573954?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/app-isolation","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/integration/attributes/cache","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/components-dir","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/config-fixture","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/data-fixture","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/8163466?v=4","https://avatars.githubusercontent.com/u/11199531?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/data-fixture-before-transaction","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/11199531?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/integration/attributes/db-isolation","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/integration/attributes/indexer-dimension-mode","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/integration/data-fixtures-guide","avatars":["https://avatars.githubusercontent.com/u/11652541?v=4","https://avatars.githubusercontent.com/u/97607802?v=4"],"lastUpdated":"11/25/2025"},{"page":"/guide/js/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"},{"page":"/guide/static/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/static/analysis","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/98337695?v=4"],"lastUpdated":"12/2/2025"},{"page":"/guide/svc/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/unit/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/guide/unit/annotations","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/2/2025"},{"page":"/guide/unit/command-line","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/105285471?v=4"],"lastUpdated":"4/7/2025"},{"page":"/guide/unit/phpstorm","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"7/10/2024"},{"page":"/guide/unit/writing-testable-code","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/6089603?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"12/3/2025"}],":type":"sheet"} \ No newline at end of file diff --git a/src/pages/functional-testing-framework/data.md b/src/pages/functional-testing-framework/data.md index cccacb3..6e41757 100644 --- a/src/pages/functional-testing-framework/data.md +++ b/src/pages/functional-testing-framework/data.md @@ -246,11 +246,11 @@ You can also call data from the XML definition of a `data` tag directly: `` is an element that contains `` elements. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|optional|Name of the ``. Use camel case for entity names. -`type`|string|optional|Node containing the exact name of `` type. Used later to find specific Persistence Layer Model class. `type` in `` can be whatever the user wants; There are no constraints. It is important when persisting data, depending on the `type` given, as it will try to match a metadata definition with the operation being done. Example: A `myCustomer` entity with `type="customer"`, calling ``, will try to find a metadata entry with the following attributes: ``. -`deprecated`|string|optional|Used to warn about the future deprecation of the data entity. String will appear in Allure reports and console output at runtime. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|optional|Name of the ``. Use camel case for entity names. | +| `type`|string|optional|Node containing the exact name of `` type. Used later to find specific Persistence Layer Model class. `type` in `` can be whatever the user wants; There are no constraints. It is important when persisting data, depending on the `type` given, as it will try to match a metadata definition with the operation being done. Example: A `myCustomer` entity with `type="customer"`, calling ``, will try to find a metadata entry with the following attributes: ``. | +| `deprecated`|string|optional|Used to warn about the future deprecation of the data entity. String will appear in Allure reports and console output at runtime. | `` may contain one or more [``][], [``][], [``][], or [``][] elements in any sequence. @@ -258,10 +258,10 @@ Attributes|Type|Use|Description `` is an element containing a data/value pair. -Attributes|Type|Use|Description ----|---|---|--- -`key`|string|optional|Key attribute of data/value pair. -`unique`|enum: `"prefix"`, `"suffix"`|optional|Add suite or test wide unique sequence as "prefix" or "suffix" to the data value if specified. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `key`|string|optional|Key attribute of data/value pair. | +| `unique`|enum: `"prefix"`, `"suffix"`|optional|Add suite or test wide unique sequence as "prefix" or "suffix" to the data value if specified. | Example: @@ -273,12 +273,12 @@ Example: `` is an element that can be used to grab a key-value from another entity. For example, when creating a customer with the `` action, the server responds with the auto-incremented ID of that customer. Use `` to access that ID and use it in another data entity. -Attributes|Type|Use|Description ----|---|---|--- -`key`|string|optional|Key attribute of this entity to assign a value to. -`entityType`|string|optional|Type attribute of referenced entity. -`entityKey`|string|optional|Key attribute of the referenced entity from which to get a value. -`unique`|--|--|_This attribute hasn't been implemented yet._ +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `key`|string|optional|Key attribute of this entity to assign a value to. | +| `entityType`|string|optional|Type attribute of referenced entity. | +| `entityKey`|string|optional|Key attribute of the referenced entity from which to get a value. | +| `unique`|--|--|_This attribute hasn't been implemented yet._ | Example: @@ -300,9 +300,9 @@ Example: You have customer address info. To specify that relationship: ``` -Attributes|Type|Use|Description ----|---|---|--- -`type`|string|optional|Type attribute of ``. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `type`|string|optional|Type attribute of ``. | ### array @@ -321,9 +321,9 @@ Example: ``` -Attributes|Type|Use|Description ----|---|---|--- -`key`|string|required|Key attribute of this entity in which to assign a value. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `key`|string|required|Key attribute of this entity in which to assign a value. | `` may contain [``][] elements. @@ -331,9 +331,9 @@ Attributes|Type|Use|Description `` is an individual piece of data to be passed in as part of the parent `` type. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|optional|Key attribute of `` entity in which to assign a value. By default numeric key will be generated. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|optional|Key attribute of `` entity in which to assign a value. By default numeric key will be generated. | [``]: #array [``]: #data diff --git a/src/pages/functional-testing-framework/getting-started.md b/src/pages/functional-testing-framework/getting-started.md index d5ffde3..89264ef 100644 --- a/src/pages/functional-testing-framework/getting-started.md +++ b/src/pages/functional-testing-framework/getting-started.md @@ -366,5 +366,5 @@ allure serve dev/tests/acceptance/tests/_output/allure-results/ [Set up a standalone MFTF]: #set-up-a-standalone-mftf [Find your version]: index.md#find-your-framework-version [Installation Guide docroot]: https://experienceleague.adobe.com/en/docs/commerce-operations/installation-guide/tutorials/docroot -[two-factor authentication (2FA) extension]: https://developer.adobe.com/commerce/testing/functional-testing-framework/two-factor-authentication/ +[two-factor authentication (2FA) extension]: two-factor-authentication.md [Credentials Page]: credentials.md diff --git a/src/pages/functional-testing-framework/git-vs-composer-install.md b/src/pages/functional-testing-framework/git-vs-composer-install.md index c9d0546..adf388f 100644 --- a/src/pages/functional-testing-framework/git-vs-composer-install.md +++ b/src/pages/functional-testing-framework/git-vs-composer-install.md @@ -86,4 +86,4 @@ If you are a contributing developer with an understanding of Git and Composer co [Composer based Installation]: https://experienceleague.adobe.com/en/docs/commerce-operations/installation-guide/composer [GitHub Installation]: https://developer.adobe.com/commerce/contributor/guides/install/clone-repository [Standalone]: getting-started.md#set-up-a-standalone-mftf -[composer package]: https://developer.adobe.com/commerce/php/development/package/component/ +[composer package]: https://developer.adobe.com/commerce/php/development/package/component diff --git a/src/pages/functional-testing-framework/page.md b/src/pages/functional-testing-framework/page.md index 088e0d6..7a8b861 100644 --- a/src/pages/functional-testing-framework/page.md +++ b/src/pages/functional-testing-framework/page.md @@ -141,15 +141,15 @@ It contains only one `` element. `` contains a sequence of UI sections in a page. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Unique page name identifier. -`url`|string|required|URL path (excluding the base URL) for the page. Use parameterized notation (`{{var1}}`) for replaceable parameters, such as the edit page for a persisted entity that is based on an ID or a name. -`module`|string|required|Name of the module to which the page belongs. The name must be prefixed with a vendor name. It corresponds to the parent directory where the module with tests is stored. Example: `"Magento_Catalog"`. -`area`|string|required|The area where this page lives. Three possible values: `admin` prepends `BACKEND_NAME` to `url`, `storefront` does not prepend anything to `url`, `external` flags the page for use with `amOnUrl`. The `url` provided must be a full URL, such as `http://myFullUrl.com/`, instead of the URL for a page. -`parameterized`|boolean |optional|Include and set to `"true"` if the `url` for this page has parameters that need to be replaced for proper use. -`remove`|boolean|optional|The default value is `"false"`. Set to `"true"` to remove this element during parsing. -`deprecated`|string|optional|Used to warn about the future deprecation of the data entity. String will appear in Allure reports and console output at runtime. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Unique page name identifier. | +| `url`|string|required|URL path (excluding the base URL) for the page. Use parameterized notation (`{{var1}}`) for replaceable parameters, such as the edit page for a persisted entity that is based on an ID or a name. | +| `module`|string|required|Name of the module to which the page belongs. The name must be prefixed with a vendor name. It corresponds to the parent directory where the module with tests is stored. Example: `"Magento_Catalog"`. | +| `area`|string|required|The area where this page lives. Three possible values: `admin` prepends `BACKEND_NAME` to `url`, `storefront` does not prepend anything to `url`, `external` flags the page for use with `amOnUrl`. The `url` provided must be a full URL, such as `http://myFullUrl.com/`, instead of the URL for a page. | +| `parameterized`|boolean |optional|Include and set to `"true"` if the `url` for this page has parameters that need to be replaced for proper use. | +| `remove`|boolean|optional|The default value is `"false"`. Set to `"true"` to remove this element during parsing. | +| `deprecated`|string|optional|Used to warn about the future deprecation of the data entity. String will appear in Allure reports and console output at runtime. | `` may contain several [`
`](#section) elements. @@ -158,10 +158,10 @@ Attributes|Type|Use|Description `
` contains the sequence of UI elements. A section is a reusable piece or part of a page. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Unique section name identifier. -`remove`|boolean|optional|The default value is `"false"`. Set to `"true"` to remove this element during parsing. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Unique section name identifier. | +| `remove`|boolean|optional|The default value is `"false"`. Set to `"true"` to remove this element during parsing. | [``]: test/actions.md#createdata [``]: test/index.md diff --git a/src/pages/functional-testing-framework/section/index.md b/src/pages/functional-testing-framework/section/index.md index 233ecc9..ac8ef26 100644 --- a/src/pages/functional-testing-framework/section/index.md +++ b/src/pages/functional-testing-framework/section/index.md @@ -91,26 +91,26 @@ The following is an example of a call in test: `
` contains the sequence of UI elements in a section of a [page][]. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Unique section name identifier. -`deprecated`|string|optional|Used to warn about the future deprecation of the section. String will appear in Allure reports and console output at runtime. -`remove`|boolean|optional|The default is `false`. Set to `true` to remove this element during parsing. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Unique section name identifier. | +| `deprecated`|string|optional|Used to warn about the future deprecation of the section. String will appear in Allure reports and console output at runtime. | +| `remove`|boolean|optional|The default is `false`. Set to `true` to remove this element during parsing. | ### element ``is a UI element used in an [action][]. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|The element name; Must be alphanumeric. -`type`|string|required|The type of the element. Possible values: `text`, `textarea`, `input`, `button`, `checkbox`, `radio`, `checkboxset`, `radioset`, `date`, `file`, `select`, `multiselect`, `wysiwyg`, `iframe`, `block`. -`selector`|string|optional|[XPath][] or [CSS][] selector of the element. -`locatorFunction`|string|optional|[Locator function][] declaration to be used in lieu of a selector. -`timeout`|string|optional|The timeout after interaction with the element (in seconds). The default is _none_. -`parameterized`|boolean|optional|Include and set to `true` if the `selector` for this element has parameters that need to be replaced for proper use. Learn more in [Parameterized selectors][]. -`deprecated`|string|optional|Used to warn about the future deprecation of the element. String will appear in Allure reports and console output at runtime. -`remove`|boolean|optional|The default is `false`. Set to `true` to remove this element during parsing. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|The element name; Must be alphanumeric. | +| `type`|string|required|The type of the element. Possible values: `text`, `textarea`, `input`, `button`, `checkbox`, `radio`, `checkboxset`, `radioset`, `date`, `file`, `select`, `multiselect`, `wysiwyg`, `iframe`, `block`. | +| `selector`|string|optional|[XPath][] or [CSS][] selector of the element. | +| `locatorFunction`|string|optional|[Locator function][] declaration to be used in lieu of a selector. | +| `timeout`|string|optional|The timeout after interaction with the element (in seconds). The default is _none_. | +| `parameterized`|boolean|optional|Include and set to `true` if the `selector` for this element has parameters that need to be replaced for proper use. Learn more in [Parameterized selectors][]. | +| `deprecated`|string|optional|Used to warn about the future deprecation of the element. String will appear in Allure reports and console output at runtime. | +| `remove`|boolean|optional|The default is `false`. Set to `true` to remove this element during parsing. | #### `timeout` attribute diff --git a/src/pages/functional-testing-framework/suite.md b/src/pages/functional-testing-framework/suite.md index 2387828..98cdeb1 100644 --- a/src/pages/functional-testing-framework/suite.md +++ b/src/pages/functional-testing-framework/suite.md @@ -208,10 +208,10 @@ The root element for suites. A set of "before" and "after" preconditions, and test filters to include and exclude tests in the scope of suite. -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Unique suite name identifier. -`remove`|boolean|optional|Removing the suite during merging. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Unique suite name identifier. | +| `remove`|boolean|optional|Removing the suite during merging. | It can contain ``, ``, ``, and ``. @@ -266,22 +266,22 @@ The element may contain [``](#test), [``](#group), and [``] ### test -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Filtering a test by its name. -`remove`|boolean|optional|Removing the filter during merging. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Filtering a test by its name. | +| `remove`|boolean|optional|Removing the filter during merging. | ### group -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Filtering tests by the `` annotation. -`remove`|boolean|optional|Removing the filter during merging. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Filtering tests by the `` annotation. | +| `remove`|boolean|optional|Removing the filter during merging. | ### module -Attributes|Type|Use|Description ----|---|---|--- -`name`|string|required|Filtering tests by their location in the corresponding module. -`file`|string|optional|Filtering a specific test file in the module. -`remove`|boolean|optional|Removing the filter during merging. +| Attributes|Type|Use|Description | +| ---|---|---|--- | +| `name`|string|required|Filtering tests by their location in the corresponding module. | +| `file`|string|optional|Filtering a specific test file in the module. | +| `remove`|boolean|optional|Removing the filter during merging. | diff --git a/src/pages/functional-testing-framework/test-writing/selectors.md b/src/pages/functional-testing-framework/test-writing/selectors.md index b45577d..59a345e 100644 --- a/src/pages/functional-testing-framework/test-writing/selectors.md +++ b/src/pages/functional-testing-framework/test-writing/selectors.md @@ -125,17 +125,17 @@ This XPath is fragile. It would fail if the attribute was `attribute="foo bar"`. Hardcoded values are by definition not flexible. A hardcoded index may change if new code is introduced. Instead, parameterize the selector. -GOOD: .foo:nth-of-type({{index}}) +GOOD: `.foo:nth-of-type({{index}})` -BAD: .foo:nth-of-type(1) +BAD: `.foo:nth-of-type(1)` GOOD: `button[contains(@id, "foo")][{{index}}]` BAD: `button[contains(@id, "foo")][1]` -GOOD: #actions__{{index}}__aggregator +GOOD: `#actions__{{index}}__aggregator` -BAD: #actions__1__aggregator +BAD: `#actions__1__aggregator` #### CSS and XPath selectors MUST NOT reference the @data-bind attribute @@ -168,36 +168,36 @@ Note in this instance that CSS does not have an equivalent to `::parent`, so XPa Examples of common HTML elements and the corresponding selector to find that element in the DOM: -Type|HTML|Selector ----|---|--- -IDs|`
`|`#idname` -Classes|`
`|`.classname` -HTML Tags|`
`|`div` -HTML Tag & ID|`
`|`div#idname` -HTML Tag & Class|`
`|`div.classname` -ID & Class|`
`|`#idname.classname` -HTML Tag & ID & Class|`
`|`div#idname.classname` +| Type|HTML|Selector | +| ---|---|--- | +| IDs|`
`|`#idname` | +| Classes|`
`|`.classname` | +| HTML Tags|`
`|`div` | +| HTML Tag & ID|`
`|`div#idname` | +| HTML Tag & Class|`
`|`div.classname` | +| ID & Class|`
`|`#idname.classname` | +| HTML Tag & ID & Class|`
`|`div#idname.classname` | Examples of common CSS selector operators and their purpose: -Symbol|Name|Purpose|Selector ----|---|---|--- -`*`|Universal Selector|Allows you to select ALL ELEMENTS on the Page. Wildcard.|`*` -Whitespace|Descendant Combinator|Allows you to combine 2 or more selectors.|`#idname .classname` -`>`|Child Combinator|Allows you to select the top-level elements THAT FOLLOWS another specified element.|`#idname > .classname` -`+`|Adjacent Sibling Combinator|Allows you to select an element THAT FOLLOWS DIRECTLY AFTER another specified element.|`#idname + .classname` -`~`|General Sibling Combinator|Allows you to select an element THAT FOLLOWS (directly or indirectly) another specified element.|`#idname ~ .classname` +| Symbol|Name|Purpose|Selector | +| ---|---|---|--- | +| `*`|Universal Selector|Allows you to select ALL ELEMENTS on the Page. Wildcard.|`*` | +| Whitespace|Descendant Combinator|Allows you to combine 2 or more selectors.|`#idname .classname` | +| `>`|Child Combinator|Allows you to select the top-level elements THAT FOLLOWS another specified element.|`#idname > .classname` | +| `+`|Adjacent Sibling Combinator|Allows you to select an element THAT FOLLOWS DIRECTLY AFTER another specified element.|`#idname + .classname` | +| `~`|General Sibling Combinator|Allows you to select an element THAT FOLLOWS (directly or indirectly) another specified element.|`#idname ~ .classname` | Examples of CSS attribute operators and their purpose: -Symbol|Purpose|Example ----|---|--- -`=`|Returns all elements that CONTAIN the EXACT string in the value.|`[attribute='value']` -`*=`|Returns all elements that CONTAINS the substring in the value.|`[attribute*='value']` -`~=`|Returns all elements that CONTAINS the given words delimited by spaces in the value.|`[attribute~='value']` -`$=`|Returns all elements that ENDS WITH the substring in the value.|`[attribute$='value']` -`^=`|Returns all elements that BEGIN EXACTLY WITH the substring in the value.|`[attribute^='value']` -`!=`|Returns all elements that either DOES NOT HAVE the given attribute or the value of the attribute is NOT EQUAL to the value.|`[attribute!='value']` +| Symbol|Purpose|Example | +| ---|---|--- | +| `=`|Returns all elements that CONTAIN the EXACT string in the value.|`[attribute='value']` | +| `*=`|Returns all elements that CONTAINS the substring in the value.|`[attribute*='value']` | +| `~=`|Returns all elements that CONTAINS the given words delimited by spaces in the value.|`[attribute~='value']` | +| `$=`|Returns all elements that ENDS WITH the substring in the value.|`[attribute$='value']` | +| `^=`|Returns all elements that BEGIN EXACTLY WITH the substring in the value.|`[attribute^='value']` | +| `!=`|Returns all elements that either DOES NOT HAVE the given attribute or the value of the attribute is NOT EQUAL to the value.|`[attribute!='value']` | ### XPath Examples @@ -274,14 +274,14 @@ Attribute selectors allow you to select elements that match a specific attribute Examples: -Attribute|HTML|Selector ----|---|--- -`id`|`
`|`//*[@id='idname']` -class|`
`|`//*[@class='classname']` -type|`