[AAE-19177] - Migration to NG15 - this one for real 👯 (#9088)

* Fixed linting

* Fixed storybook with migration to WP5

* Fixed core unit test and excluded instable ones

* Rebased with the latest develop

* Fixed most of unit tests failing

* Fixed prod build

* Fixed linting and js-api tests

* Fixed unit tests

* Fixed last unit tests

* Fixed js-api build

* Attempt to fix the e2e run'

* Fixing e2e part 2

* Fixing styles not migrated by material

* Fixed unit test failing

* E2E - fixing

* Fixing unit after rebase

* Fixing e2e - part III

* Rebase went little bit wrong -II

* Rebase went little bit wrong -III

* Fixing e2e - changing toggles

* Fixed code flow switch setting

* wrong xdescribe

* fixig e2es

* fixig e2es - task and version

* readded missing dep

* Fixed slider search e2es

* rebased and fixed the wrong directive for matList'

* fixed unit test problem and some other e2e

* Fixed search e2es

* Rebased to latest

* Fixed the last e2es?

* reverted broken rebase

* Fixed unit tests after rebase

* Fixed unit tests after rebase

* Honestly i'm going on just for the challenge now'

* Readded method removed

* Fixed pointless e2e

* Fixed unit test

* [AAE-18267] change unit test setup for auth service (#9216)

* [AAE-18267] change unit test setup for auth service

* [AAE-18267] remove exclude

* [AAE-18267] removed CoreTestingModule from imports

* unit test fixes for migration (#9217)

* reenabled excluded test in TagNodeList

* fixed tests for UploadApi in js-api

* Fixed a dependency problem

* remaining unit test fixes for the Angular 15 update (#9218)

* removing excludes from working tests

* test fixes for CategoriesManagementComponent

* [ci:force] reenabling tests / fixes

* fixes in process-services-cloud

* change html element type

* fix selector in StartProcessComponent

* Revert "Fixed a dependency problem"

This reverts commit 319e1830fe.

* Rebased to latest

* Fixed PR after huge rebase -_-

* Fixed lint files and exclude some needing migration

* Fixed package.json

* Fixed dependency to allow greater versions

* Rebased to the latest

* [affected:*][ci:force] Fixing rebase

* [affected:*][ci:force] Fixing rebase

* [affected:*][ci:force] Fixing rebase

* [affected:*][ci:force] Wrong setting page

* [affected:*][ci:force] Upgrading material selector class

* [affected:*][ci:force] Fixed lint

* [affected:*][ci:force] Fixed lint

* [affected:*][ci:force] Fixed e2e with new notation

* [affected:*][ci:force] Fixed e2e with new notation

* [affected:*][ci:force] Fixed e2e with new notation

* [affected:*][ci:force] [AAE-21070] Fix e2e Content: Components - C587084 - fix class selectors

* [affected:*][ci:force] Fixed lint after error on important

* Improvement/AAE-19176-reapply-selector-changes (#9424)

* AAE-19510 remove selector variable

* AAE-19510 poc for card view using variable selectors

* AAE-19176 rename mat selectors file

* AAE-19176 add missing style imports

* AAE-19176 remove remaining mat selectors

* AAE-19176 replaced todo material selectors with variables

* AAE-19176 changes made in meantime

* AAE-19176 conflict fixes

* [AAE-21083] Fix e2e Content: Metadata - C245652 - fix tab active selector

* Fix selector after merging https://github.com/Alfresco/alfresco-ng2-components/pull/9424, .mat-content-actions was replaced by .adf-start-process-content-actions

* Fix lint issue

* [AAE-21083] Fix e2e Content: Metadata - C280560 - fix slide toggle click, in v15 toggle is handled with a button instead of input

* [affected:*][ci:force] Fixed check on expansion panel filter

* [affected:*][ci:force] Fixed check on expansion panel filter

* [affected:*][ci:force] Fixed other e2es

* [affected:*][ci:force] Fixing e2e - the long painful journey

* [affected:*][ci:force] Fixing e2e - the long painful journey - part II

* [AAE-21084] Fix e2e Content: Upload and Versioning - C279992 - fix enable togle selector

* [AAE-21085] Fix e2e Search - revert to previous version, text should be written without pressing eneter to show the autocomplete list items

* [AAE-21085] Fix e2e Search - add content selector that wrap text

* [affected:*][ci:force] Fixing e2e - the lord of E2E

* [AAE-21089] Fix e2e Search - fix checkbox selector

* [affected:*][ci:force] Fixing e2e - the lord of E2E

* [affected:*][ci:force] Fixing e2e - the return of the fail

* [affected:*][ci:force] Fixing e2e - the return of the fail

* [affected:*][ci:force] Fixing e2e - the eternal fail

* [affected:*][ci:force] Remove fit

* [affected:*][ci:force] Fixing e2e - fixing the last ones

* [affected:*][ci:force] attempt to fix mat-selectors importing

* [affected:*][ci:force] Fixing the styles - check

* [affected:*][ci:force] Added pretheme for core as it is mandatory when publishing and rebuilding

* [affected:*][ci:force] - REBASED

* [ACS-7359] - Angular 15 - Edit aspects modal [ACA] (#9488)

* [affected:*][ci:force] - REBASED

* [affected:*][ci:force] - REBASED

* [affected:*][ci:force] - Rebased and added an extra fix for after

* [affected:*][ci:force] - Funny imports

* [ACS-7373] ng15 permissions page fixes

* [ACS-7373] mat-icon-buttons

* [ACS-7452] - Small screen notification banner [ACS-7418] About page (#9507)

* [ACS-7413] Dialog height and spacing issues (#9515)

* [ACS-7446] - Upload progress box issues

* [ACS-7414] - Manage versions dialog

* [ACS-7375] - Share link dialog issues

* Fixed errors on unit and lint

* Re Enabling unit test removed

* Fixing unit test after last rebase + lint

* Fixing unit test after last rebase + lint

* Fixing unit test after last rebase + lint

* [ACS-7419] Fix broken styling of notifications

* [ACS-7419] Fix broken styling of notifications, apply pr remarks

* [ACS-7419] Fix broken styling of notifications, apply pr remarks

* [ACS-7419] Fix broken styling of notifications, apply pr remarks

* Extra parentesys lint

* [ACS-7528] - Notification and user icons are a bit different (#9540)

* [ACS-7532] - Click on chip in search gives redundant icon (#9544)

* [ACS-7530] - Notifications popup looks a bit differently (#9543)

* [ACS-7414] - manage versions dialog (#9545)

* [ACS-7535][ACS-7537][ACS-7536][ACA] Move/Copy dialogs, Share dialog, Aspects dialog (#9553)

* AAE-21697 Fix people form widget style (#9555)

* [affected:*][ci:force] - Rebased

* [affected:*][ci:force] - Fixed problem after rebase

* [ACS-7519] - Login page (#9565)

* [ACS-7331] - View details sidebar (#9455)

* [ACS-7542] - Upload new version dialog (#9572)

* [ACS-7542] - Upload new version dialog

* [ACS-7542] - Upload new version dialog

* [ACS-7575] create library dialog fixes (#9574)

* [ACS-7534] create/edit folder dialog fixes (#9575)

* Rebased ADF Migration PR

* Rebased ADF Migration PR

* Sync lock

* [ACS-7681] Bell icon not aligned [ACS-7571] Comments [ACS-7563] Add permission dialog (#9594)

* [ACS-7554] Fix tags in column display (#9597)

* Fixed unit test

* AAE-21256 Fix form widget styles (#9599)

* [ACS-7555] column filters (#9576)

* Changed ng version before material migration

* migration for material'

* Upgrading NX and start fixing styles

* Make all the part build

* Fixed core unit test and excluded instable ones

* Fixed most of unit tests failing

* Fixed unit tests

* Fixed last unit tests

* fixed unit test problem and some other e2e

* Fixed unit tests after rebase

* [AAE-18267] change unit test setup for auth service (#9216)

* [AAE-18267] change unit test setup for auth service

* [AAE-18267] remove exclude

* [AAE-18267] removed CoreTestingModule from imports

* remaining unit test fixes for the Angular 15 update (#9218)

* removing excludes from working tests

* test fixes for CategoriesManagementComponent

* [ci:force] reenabling tests / fixes

* fixes in process-services-cloud

* change html element type

* fix selector in StartProcessComponent

* Fixing unit test after last rebase + lint

* ACS-7555 Fixed styles for node type filters

* ACS-7555 Removed redundant padding

* ACS-7555 Outlined input for text filter

* ACS-7555 Resolved conflicts

---------

Co-authored-by: Vito Albano <vito.albano@hyland.com>
Co-authored-by: Wojciech Duda <69160975+wojd0@users.noreply.github.com>

* AAE-21393 Fix amount form widget style (#9601)

* AAE-21392 Fix dropdown form widget style (#9605)

* [ACS-7582] Upload dialog button display fix (#9603)

* [ACS-7531] - Search page (#9606)

* rebased to last develop

* Fixed SonarCloud complaints

* Fixed SonarCloud complaints

* Fixing some sonarcloud comments

* [ACS-7572] link rules dialog fixes (#9607)

* AAE-21703 Fix group widget style (#9612)

* AAE-21703 Fix group form widget style

* AAE-21703 Improve tests

* [ACS-7533] - Advanced search chips dropdowns (#9618)

* [ACS-7560] undo deletion notification (#9632)

* ACS-7560 Fixed margin around snackbar and size of x icon

* ACS-7560 Fixed styles for info snackbar

* Rebased to the latest develop

* Rebased to the latest

* Skipped failing unit tests

* Updated today date selector

* rebased

* Fixed process unit test fail

* fix folder-edit license headers

* fix FolderEditDirective unit tests

* AAE-21937 Fix context menu list component (#9658)

* Fixed broken unit test after rebase

* ACS-7561 - permissions page (#9675)

* Trying to fix the long failing e2ea

* Missed import

* Fixed changed unit test

* Fixed property e2e

* Updated calendar selector

* [ACS-7768] unify inputs and selects across the app (#9687)

* Changed ng version before material migration

* migration for material'

* Fixed most of unit tests failing

* [affected:*][ci:force] Fixing rebase

* [affected:*][ci:force] attempt to fix mat-selectors importing

* [affected:*][ci:force] Fixing the styles - check

* AAE-21392 Fix dropdown form widget style (#9605)

* ACS-7768 Applied new styles for inputs

* ACS-7768 Align icon

* ACS-7768 Input colors based on input state

* ACS-7768 Corrected spaces

* ACS-7768 Styles for selectboxes

* ACS-7768 Fixed label jumping on hovering

* ACS-7768 Style inputs for add permission panel, user role column and comments, styles for inputs without label

* ACS-7768 Style inputs in search filters

* ACS-7768 Set appearance for inputs globally to outline

* ACS-7768 Style inputs for share dialog and login page

* ACS-7768 Style inputs in properties panel

* ACS-7768 Fixed white background when disabled field

* ACS-7768 Moved setting outline appearance for inputs to ACA, fix issue for inputs in permission container

* Revert "[affected:*][ci:force] Fixing the styles - check"

This reverts commit 80d971f7ab.

* Revert "[affected:*][ci:force] attempt to fix mat-selectors importing"

This reverts commit 821d9e1864.

* Revert "[affected:*][ci:force] Fixing rebase"

This reverts commit 378c6c2000.

* Revert "Fixed most of unit tests failing"

This reverts commit 44948e0a28.

* ACS-7768 Reverted unwanted changes

---------

Co-authored-by: Vito Albano <vito.albano@hyland.com>
Co-authored-by: Diogo Bastos <50139916+DiogoABastos@users.noreply.github.com>

* [ACS-7768] unify inputs and selects across the app - revert (#9699)

* Revert "[ACS-7768] unify inputs and selects across the app (#9687)"

This reverts commit 7cfb5ea64a.

* ACS-7768 Little correction

* [ACS-7998] - Add permissions input (#9704)

* [ACS-8004] Fix inputs for move folder (#9707)

* [ACS-7999] Fix inputs for edit and create folder (#9713)

* ACS-7999 Fix inputs for edit and create folder

* ACS-7999 Fix jumping dialog when focus field

* [ACS-7982] ACC - fix categories tree (#9715)

* Fixed after rebase

* Fixed package-lock

* Fixed after rebase

* Fixed unit test for process

* AAE-22783 Fix form elements label style (#9725)

* [ACS-8021] Inputs for comments (#9722)

* [ACS-8008] - Inputs for properties panel "General info" (#9744)

* [ACS-8052] Inputs for general info for libraries (#9745)

* [ACS-7983] Fixed security controls dialog (#9747)

* [ACS-8026] Fixed task form rendering (#9742)

* [ACS-8026] Fixed Task form rendering

* [ACS-8026] Fixed task form rendering

* [ACS-8042] Fixed styles for inputs in library creation (#9751)

* Added missing import for uppercase pipe (#9748)

* Recreated package-lock

* Fixed package and e2e with tabs that now are capital letters?

* Fixed package json

* Removed wrong version on core package

* Ehi Js-Api should be 7.8 NOT 7.9

* These dependencies will kill me

* [ACS-7981] UI fixes for create categories dialog (#9754)

* [ACS-7981] Fixed UI for create categories dialog

* [ACS-7981] Adding mat selectors for create categories dialog

* [ACS-7981] Create category dialog no longer allows ability to add existing categories

* [ACS-7974] Adding material selectors for assign security marks dialog (#9755)

* [ACS-7974] Fixed UI for assign security controls to user dialog

* [ACS-7974] Removing unneeded mat selector

* [ACS-8069] Updated error-content.component.html to be aligned with the new mat typography classes in angular material v15 (#9762)

* Added missing mat selector for mat-list-item-disabled (#9763)

* Fixed process unit test after huge rebase

* [ACS-8066] Style inputs for link rule dialog (#9773)

* Insight material module has been removed

* [ACS-7973] [ACC] header layout (#9782)

* [ACS-8096] Print button in the viewer does not open the print window (#9776) (#9778)

* [ACS-8066] Fixed unit tests (#9783)

* [ACS-8092] [ACA] testing angular 15 notifications bell is much smaller and is further from the profile page 2 (#9786)

* AAE 22837 Move confirm to core (#9750)

* confirm dialog is used in many places and should be part of the core

* fix

* Update confirm.dialog.spec.ts

* Update public-api.ts

* Fixed imports for confirm dialog unit tests

* Fixed linting for packages

* Removed -mdc as it's wrong for mat calendar

* [ACS-8098] [ACA] Testing Angular 15 - Move Popup placeholder missing (#9796)

* [ACS-7944] [ADW] Start process page (#9802)

* [ACS-8157] Used mat chip set instead of mat chip listbox for dynamic chip list to hide tick icon for chips (#9803)

* Fixed issue on focus mat calendar

* [ACS-7980] fix style (#9798)

* [ACS-7979] Fixed UI for create tags dialog (#9793)

* [ACS-7979] Fixed UI for create tags dialog. Minor UI fixes of create categories dialog as well

* [ACS-7979] Fixed unit tests

* [ACS-7979] Replaced dependency of CoreModule from tag.module.ts with TranslateModule and DynamicChipListModule

* [ACS-8158] Fixed spacing of tags in ACA (#9808)

* [ACS-8158] Fixed spacing of tags in ACA

* [ACS-8158] Fixed unit tests

* AAE-22965 fix datepicker focused element selector (#9814)

* [ACS-8212] Fixed alignment issue of filters button in sidenav (#9828)

* [ACS-8191] Added missing mat selectors for ACA. Updated mat selector name (#9809)

* [ACS-8191] Updated mat selector names

* [ACS-8191] Added missing mat selectors for ACA. Updated mat-selector names

* [ACS-8196] fix style for pagination (#9810)

* Removing implicitFlow in favor of codeFlow

* [ACS-8230] Fixed UI for snackbars with long text content and action buttons (#9830)

* [ACS-8231] [ADW] Processes button styling on hover- edit summary (#9833)

[ADW] Processes button styling on hover

* Revert "Removing implicitFlow in favor of codeFlow"

This reverts commit 58951a77b8.

* Fixed unit test after rebase

* Fixing unit test

* Disabled failing unit from content

* AAE-23287 migrate to storybook 8 (#9867)

* Fixed core unit test and excluded instable ones

* AAE-23287 migrate to storybook 8

---------

Co-authored-by: Vito Albano <vito.albano@hyland.com>

* Fixed unit and lint

* Fixing unit test and lint issues after merging with storybook latest

* Storybook still not working though

* Fixed missing locator for content e2e

* fix storybook exceeding timeout

* Fixed wrong package version

* AAE-23478 replace nav-list with action-list (#9875)

* [ACS-8272] [ADW] Testing Angular 15 - Misplaced buttons Cancel and Start process (#9869)

* [ACS-8273] [ADW] Testing Angular 15 - Process' tab names are uppercased (#9870)

* [ACS-8274] angular 15 description field in info drawer is truncated and scrollable (#9878)

* [ACS-8275] - [ACA] Testing Angular 15 - Tags are not displayed correctly (#9872)

* Fixing e2e tab label

* AAE-22858 Fix date button style (#9892)

* AAE-23556 Fix search text input component styles (#9895)

* Fixing unit test an builds

* Fixing style

* [ACS-8260] add user dialog misplaced search icon and space issue (#9897)

* [ACS-8275] [ACA] Angular 15 tags are not displayed correctly (#9896)

* [ACS-8322] Testing Angular 15 - Info Drawer - General info - Missing … (#9901)

* [ACS-8322] Testing Angular 15 - Info Drawer - General info - Missing arrow in Content type selector

* [ACS-8322] Testing Angular 15 - Info Drawer - General info - Missing arrow in Content type selector

* [AAE-23622] fixed buttons and chips (#9913)

* Aae 23572 recreate js api lib into a proper nx workspace lib bis (#9917)

* back to mocha, working in future node versions

* update package-lock

* change bundle to build

* update node to 18.20.3 [ci:force]

* fix e2es [ci:force]

* bring bundle back to fix e2e [ci:force]

* patch in legacy builds

* Updated package-lock

* Updated executor to new @nx

* Revert "Updated executor to new @nx"

This reverts commit a520ba3595.

* Improved ts config reverted changes on @nrwl

---------

Co-authored-by: Wojciech Duda <69160975+wojd0@users.noreply.github.com>

* Fixing target name for publishing js-api as it's not happening anymore

* fixed js-api publish command

* JS-api wasn't building correctly on publish

* Fixed naming for tests tab

* Fixed tabs name missed

* AAE-23704 Fixed outcome buttons text alignment (#9933)

* Thanks tooltip change

* Removing FIT :O

* Fixing build broken

* [ACS-8275] Testing Angular 15 - Tags are not displayed correctly (#9940)

* [ACS-8253] viewer file name change position on navigation (#9900)

* AAE-23783 Fixed feature flags dialog styles (#9945)

* Added styles include path to feature flags lib

* Fixed js-api version

---------

Co-authored-by: Wojciech Duda <69160975+wojd0@users.noreply.github.com>
Co-authored-by: Amedeo Lepore <amedeo.lepore85@gmail.com>
Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com>
Co-authored-by: jacekpluta <73617938+jacekpluta@users.noreply.github.com>
Co-authored-by: Mykyta Maliarchuk <maliarchuk99@gmail.com>
Co-authored-by: tomson <tomasz.nastaly@hyland.com>
Co-authored-by: DominikIwanek <dominik.iwanek@hyland.com>
Co-authored-by: Jacek Pluta <jacek.pluta@hyland.com>
Co-authored-by: dominikiwanekhyland <141320833+dominikiwanekhyland@users.noreply.github.com>
Co-authored-by: Diogo Bastos <50139916+DiogoABastos@users.noreply.github.com>
Co-authored-by: Mykyta Maliarchuk <84377976+nikita-web-ua@users.noreply.github.com>
Co-authored-by: AleksanderSklorz <115619721+AleksanderSklorz@users.noreply.github.com>
Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com>
Co-authored-by: swapnil-verma-gl <92505353+swapnil-verma-gl@users.noreply.github.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
Co-authored-by: tamaragruszka <156320606+tamaragruszka@users.noreply.github.com>
Co-authored-by: tomasz hanaj <12088991+tomaszhanaj@users.noreply.github.com>
This commit is contained in:
Vito Albano
2024-07-19 09:27:15 +01:00
committed by GitHub
parent eda03ed525
commit 68ab2c67fd
536 changed files with 18952 additions and 32894 deletions

View File

@@ -0,0 +1,17 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major version
last 2 iOS major versions
Firefox ESR
not IE 9-11 # For IE 9-11 support, remove 'not'.

View File

@@ -1,536 +0,0 @@
{
"name": "@alfresco/adf-testing",
"version": "6.9.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@alfresco/adf-testing",
"version": "6.9.0",
"license": "Apache-2.0",
"peerDependencies": {
"@alfresco/js-api": ">=7.5.0"
}
},
"node_modules/@alfresco/js-api": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-7.5.0.tgz",
"integrity": "sha512-zDjqeEF5zX8DfnSAjM/e+uOf0PdVb67vDWF0Zv/lWjxtezerRdLW/P6BHjxqTscE1VAeGUdALzX5R7e+RZcHDw==",
"peer": true,
"dependencies": {
"event-emitter": "^0.3.5",
"superagent": "^8.0.9",
"tslib": "^2.6.1"
}
},
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
"peer": true
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"peer": true
},
"node_modules/call-bind": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
"integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
"peer": true,
"dependencies": {
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.1",
"set-function-length": "^1.1.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"peer": true,
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
"peer": true
},
"node_modules/cookiejar": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
"peer": true
},
"node_modules/d": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"peer": true,
"dependencies": {
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"peer": true,
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/define-data-property": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
"integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
"peer": true,
"dependencies": {
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"peer": true,
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/dezalgo": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"peer": true,
"dependencies": {
"asap": "^2.0.0",
"wrappy": "1"
}
},
"node_modules/es5-ext": {
"version": "0.10.63",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.63.tgz",
"integrity": "sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==",
"hasInstallScript": true,
"peer": true,
"dependencies": {
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.3",
"esniff": "^2.0.1",
"next-tick": "^1.1.0"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/es6-iterator": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
"peer": true,
"dependencies": {
"d": "1",
"es5-ext": "^0.10.35",
"es6-symbol": "^3.1.1"
}
},
"node_modules/es6-symbol": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
"integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
"peer": true,
"dependencies": {
"d": "^1.0.1",
"ext": "^1.1.2"
}
},
"node_modules/esniff": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
"integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
"peer": true,
"dependencies": {
"d": "^1.0.1",
"es5-ext": "^0.10.62",
"event-emitter": "^0.3.5",
"type": "^2.7.2"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/esniff/node_modules/type": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
"peer": true
},
"node_modules/event-emitter": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
"peer": true,
"dependencies": {
"d": "1",
"es5-ext": "~0.10.14"
}
},
"node_modules/ext": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
"peer": true,
"dependencies": {
"type": "^2.7.2"
}
},
"node_modules/ext/node_modules/type": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
"peer": true
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
"peer": true
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"peer": true,
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/formidable": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
"integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
"peer": true,
"dependencies": {
"dezalgo": "^1.0.4",
"hexoid": "^1.0.0",
"once": "^1.4.0",
"qs": "^6.11.0"
},
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
"integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
"peer": true,
"dependencies": {
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"peer": true,
"dependencies": {
"get-intrinsic": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-property-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
"integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
"peer": true,
"dependencies": {
"get-intrinsic": "^1.2.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"peer": true,
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"peer": true,
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"peer": true,
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/hexoid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
"integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
"peer": true,
"engines": {
"node": ">=8"
}
},
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"peer": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"peer": true,
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"peer": true,
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"peer": true,
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"peer": true,
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"peer": true
},
"node_modules/next-tick": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
"peer": true
},
"node_modules/object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"peer": true,
"dependencies": {
"wrappy": "1"
}
},
"node_modules/qs": {
"version": "6.11.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
"integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
"peer": true,
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"peer": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/set-function-length": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
"integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
"peer": true,
"dependencies": {
"define-data-property": "^1.1.1",
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"peer": true,
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/superagent": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
"integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
"peer": true,
"dependencies": {
"component-emitter": "^1.3.0",
"cookiejar": "^2.1.4",
"debug": "^4.3.4",
"fast-safe-stringify": "^2.1.1",
"form-data": "^4.0.0",
"formidable": "^2.1.2",
"methods": "^1.1.2",
"mime": "2.6.0",
"qs": "^6.11.0",
"semver": "^7.3.8"
},
"engines": {
"node": ">=6.4.0 <13 || >=14"
}
},
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"peer": true
},
"node_modules/type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
"peer": true
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"peer": true
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"peer": true
}
}
}

80
lib/testing/project.json Normal file
View File

@@ -0,0 +1,80 @@
{
"name": "testing",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "lib/testing/src",
"projectType": "library",
"prefix": "adf",
"targets": {
"build": {
"executor": "@nrwl/webpack:webpack",
"options": {
"projectRoot": "lib/testing",
"outputPath": "dist/libs/testing",
"main": "lib/testing/index.ts",
"generatePackageJson": true,
"tsConfig": "lib/testing/tsconfig.lib.prod.json",
"stylePreprocessorOptions": {
"includePaths": ["lib", "lib/core/src/lib"]
},
"target": "node",
"compiler": "tsc"
},
"configurations": {
"production": {
"projectRoot": "lib/testing",
"outputPath": "dist/libs/testing",
"main": "lib/testing/index.ts",
"generatePackageJson": true,
"tsConfig": "lib/testing/tsconfig.lib.prod.json"
}
},
"defaultConfiguration": "production"
},
"lint": {
"executor": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["lib/testing/**/*.ts", "lib/testing/**/*.html"]
}
},
"bundle": {
"executor": "nx:run-commands",
"options": {
"commands": [
{
"command": "echo testing bundle created"
}
]
},
"dependsOn": ["copyToNodeModules"]
},
"copyToNodeModules": {
"executor": "nx:run-commands",
"options": {
"commands": [
{
"command": "rm -rf ./node_modules/@alfresco/adf-testing/ && mkdir -p ./node_modules/@alfresco/adf-testing/ && cp -R ./dist/libs/testing/* ./node_modules/@alfresco/adf-testing/"
}
]
},
"dependsOn": [
{
"projects": "self",
"target": "build"
}
]
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": ["build"],
"options": {
"cwd": "dist/libs/testing",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
}

View File

@@ -50,11 +50,11 @@ export class SearchCategoriesPage {
}
async clickFilter(filter: ElementFinder): Promise<void> {
await BrowserActions.click(filter.$('mat-expansion-panel-header'));
await BrowserActions.click(filter.$(' .mat-expansion-panel-header'));
}
async clickFilterHeader(filter: ElementFinder): Promise<void> {
const fileSizeFilterHeader = filter.$('mat-expansion-panel-header');
const fileSizeFilterHeader = filter.$(' .mat-expansion-panel-header');
await BrowserActions.click(fileSizeFilterHeader);
}

View File

@@ -33,20 +33,20 @@ export class SearchCheckListPage {
async clickCheckListOption(option: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.$$(`mat-checkbox[data-automation-id*='${option}'] .mat-checkbox-inner-container`).first();
const result = this.filter.$(`mat-checkbox[data-automation-id*='${option}'] input`);
await BrowserActions.click(result);
}
async checkChipIsDisplayed(option: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText('mat-chip', option)).$('mat-icon'));
await BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText('mat-chip-row', option)).$('mat-icon'));
}
async checkChipIsNotDisplayed(option: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.cssContainingText('mat-chip', option)).$('mat-icon'));
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.cssContainingText('mat-chip-row', option)).$('mat-icon'));
}
async removeFilterOption(option: string): Promise<void> {
const cancelChipButton = element(by.cssContainingText('mat-chip', option)).$('mat-icon');
const cancelChipButton = element(by.cssContainingText('mat-chip-row', option)).$('mat-icon');
await BrowserActions.click(cancelChipButton);
}

View File

@@ -31,21 +31,22 @@ export class SearchSliderPage {
}
async getMaxValue() {
return BrowserActions.getAttribute(this.filter.$(this.slider), 'aria-valuemax');
return BrowserActions.getAttribute(this.filter.$(this.slider).$('input'), 'max');
}
async getMinValue() {
return BrowserActions.getAttribute(this.filter.$(this.slider), 'aria-valuemin');
return BrowserActions.getAttribute(this.filter.$(this.slider).$('input'), 'min');
}
async getValue() {
return BrowserActions.getAttribute(this.filter.$(this.slider), 'aria-valuenow');
return BrowserActions.getAttribute(this.filter.$(this.slider).$('input'), 'aria-valuetext');
}
async setValue(value: number): Promise<void> {
const elem = this.filter.$(this.slider).$('.mat-slider-wrapper');
const elem = this.filter.$(this.slider).$('.mdc-slider__thumb-knob');
await BrowserVisibility.waitUntilElementIsVisible(elem);
await browser.actions().mouseMove(elem, { x: 0, y: 0 }).perform();
await browser.actions().mouseDown().mouseMove({x: value * 20, y: 0}).mouseUp().perform();
await browser.actions().mouseDown().mouseMove({x: value * 7, y: 0}).mouseUp().perform();
}
async checkSliderIsDisplayed(): Promise<void> {

View File

@@ -22,12 +22,12 @@ import { DropdownPage } from '../../../core/pages/material/dropdown.page';
export class SearchSortingPickerPage {
sortingDropdown = new DropdownPage($('.adf-sorting-picker .mat-select-arrow'));
sortingDropdown = new DropdownPage($('.adf-sorting-picker .mat-mdc-select-arrow'));
orderArrow = $('adf-sorting-picker button mat-icon');
async sortBy(sortOrder: string, sortType: string | RegExp): Promise<void> {
await this.sortingDropdown.clickDropdown();
const selectedSortingOption = element(by.cssContainingText('.mat-option-text', sortType));
const selectedSortingOption = element(by.cssContainingText('.mdc-list-item__primary-text', sortType));
await BrowserActions.click(selectedSortingOption);
await this.sortByOrder(sortOrder);
}
@@ -53,7 +53,7 @@ export class SearchSortingPickerPage {
}
async clickSortingOption(option: string): Promise<void> {
const selectedSortingOption = element(by.cssContainingText('.mat-option-text', option));
const selectedSortingOption = element(by.cssContainingText('.mdc-list-item__primary-text', option));
await BrowserActions.click(selectedSortingOption);
}

View File

@@ -24,7 +24,6 @@ import { materialLocators } from './public-api';
const MAX_LOADING_TIME = 120000;
export class DataTableComponentPage {
rootElement: ElementFinder;
list: ElementArrayFinder;
contents: ElementArrayFinder;
@@ -33,6 +32,7 @@ export class DataTableComponentPage {
selectedRowNumber: ElementFinder;
allSelectedRows: ElementArrayFinder;
selectAll: ElementFinder;
selectAllChecked: ElementFinder;
emptyList: ElementFinder;
emptyListTitle: ElementFinder;
emptyListSubtitle: ElementFinder;
@@ -50,6 +50,7 @@ export class DataTableComponentPage {
this.mainMenuButton = this.rootElement.$('[data-automation-id="adf-datatable-main-menu-button"]');
this.selectedRowNumber = this.rootElement.$(`adf-datatable-row[class*='is-selected'] div[data-automation-id*='text_']`);
this.allSelectedRows = this.rootElement.$$(`adf-datatable-row[class*='is-selected']`);
this.selectAllChecked = this.rootElement.$(`div[class*='adf-datatable-header'] ${materialLocators.Checkbox.root}.mat-mdc-checkbox-checked`);
this.selectAll = this.rootElement.$(`div[class*='adf-datatable-header'] ${materialLocators.Checkbox.root}`);
this.emptyList = this.rootElement.$(`adf-empty-content`);
this.emptyListTitle = this.rootElement.$(`.adf-empty-content__title`);
@@ -67,12 +68,12 @@ export class DataTableComponentPage {
async checkAllRows(): Promise<void> {
await BrowserActions.click(this.selectAll);
await BrowserVisibility.waitUntilElementIsVisible(this.selectAll.$('input[aria-checked="true"]'));
await BrowserVisibility.waitUntilElementIsVisible(this.selectAllChecked);
}
async uncheckAllRows(): Promise<void> {
await BrowserActions.click(this.selectAll);
await BrowserVisibility.waitUntilElementIsNotVisible(this.selectAll.$('input[aria-checked="true"]'));
await BrowserVisibility.waitUntilElementIsNotVisible(this.selectAllChecked);
}
async clickCheckbox(columnName: string, columnValue: string): Promise<void> {
@@ -81,18 +82,23 @@ export class DataTableComponentPage {
}
async checkRowIsNotChecked(columnName: string, columnValue: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsNotVisible(this.getRowCheckbox(columnName, columnValue).$('input[aria-checked="true"]'));
const rowSelector = this.getRowCheckboxChecked(columnName, columnValue);
await BrowserVisibility.waitUntilElementIsNotVisible(rowSelector);
}
async checkRowIsChecked(columnName: string, columnValue: string): Promise<void> {
const rowCheckbox = this.getRowCheckbox(columnName, columnValue);
await BrowserVisibility.waitUntilElementIsVisible(rowCheckbox.$('input[aria-checked="true"]'));
const rowCheckbox = this.getRowCheckboxChecked(columnName, columnValue);
await BrowserVisibility.waitUntilElementIsVisible(rowCheckbox);
}
getRowCheckbox(columnName: string, columnValue: string): ElementFinder {
return this.getRow(columnName, columnValue).$(materialLocators.Checkbox.root);
}
getRowCheckboxChecked(columnName: string, columnValue: string): ElementFinder {
return this.getRow(columnName, columnValue).$('mat-checkbox.mat-mdc-checkbox-checked');
}
async checkNoRowIsSelected(): Promise<void> {
await BrowserVisibility.waitUntilElementIsNotVisible(this.selectedRowNumber);
}
@@ -114,12 +120,16 @@ export class DataTableComponentPage {
}
async checkRowIsSelected(columnName: string, columnValue: string): Promise<void> {
const selectedRow = this.getCellElementByValue(columnName, columnValue).element(by.xpath(`ancestor::adf-datatable-row[contains(@class, 'is-selected')]`));
const selectedRow = this.getCellElementByValue(columnName, columnValue).element(
by.xpath(`ancestor::adf-datatable-row[contains(@class, 'is-selected')]`)
);
await BrowserVisibility.waitUntilElementIsVisible(selectedRow);
}
async checkRowIsNotSelected(columnName: string, columnValue: string): Promise<void> {
const selectedRow = this.getCellElementByValue(columnName, columnValue).element(by.xpath(`ancestor::adf-datatable-row[contains(@class, 'is-selected')]`));
const selectedRow = this.getCellElementByValue(columnName, columnValue).element(
by.xpath(`ancestor::adf-datatable-row[contains(@class, 'is-selected')]`)
);
await BrowserVisibility.waitUntilElementIsNotVisible(selectedRow);
}
@@ -229,14 +239,14 @@ export class DataTableComponentPage {
async getAllRowsColumnValues(column: string): Promise<string[]> {
let columnValues: string[] = [];
const columnLocator = $$(`adf-datatable div[class*='adf-datatable-body'] adf-datatable-row[class*='adf-datatable-row'] div[title="${column}"] span`);
const columnLocator = $$(
`adf-datatable div[class*='adf-datatable-body'] adf-datatable-row[class*='adf-datatable-row'] div[title="${column}"] span`
);
await BrowserVisibility.waitUntilElementIsPresent(columnLocator.first(), 1000);
try {
await BrowserVisibility.waitUntilElementIsPresent(columnLocator.first(), 1000);
columnValues = await columnLocator
.filter(async (el) => el.isPresent())
.map(async (el) => el.getText());
columnValues = await columnLocator.filter(async (el) => el.isPresent()).map(async (el) => el.getText());
} catch (error) {
Logger.log(error);
}
@@ -326,12 +336,20 @@ export class DataTableComponentPage {
}
getRow(columnName: string, columnValue: string): ElementFinder {
return this.rootElement.all(by.xpath(`//div[starts-with(@title, '${columnName}')]//div[contains(@data-automation-id, '${columnValue}')]//ancestor::adf-datatable-row[contains(@class, 'adf-datatable-row')]`)).first();
return this.rootElement
.all(
by.xpath(
`//div[starts-with(@title, '${columnName}')]//div[contains(@data-automation-id, '${columnValue}')]//ancestor::adf-datatable-row[contains(@class, 'adf-datatable-row')]`
)
)
.first();
}
// @deprecated use Playwright instead
getRowByIndex(index: number): ElementFinder {
return this.rootElement.element(by.xpath(`//div[contains(@class,'adf-datatable-body')]//adf-datatable-row[contains(@class,'adf-datatable-row')][${index}]`));
return this.rootElement.element(
by.xpath(`//div[contains(@class,'adf-datatable-body')]//adf-datatable-row[contains(@class,'adf-datatable-row')][${index}]`)
);
}
async contentInPosition(position: number): Promise<string> {
@@ -350,23 +368,27 @@ export class DataTableComponentPage {
async waitTillContentLoaded(): Promise<void> {
if (await this.isSpinnerPresent()) {
Logger.log('wait datatable loading spinner disappear');
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName(materialLocators.Progress.spinner.root)), MAX_LOADING_TIME);
await BrowserVisibility.waitUntilElementIsNotVisible(
this.rootElement.element(by.tagName(materialLocators.Progress.spinner.root)),
MAX_LOADING_TIME
);
if (await this.isEmpty()) {
Logger.log('empty page');
} else {
await this.waitFirstElementPresent();
}
} else if (await this.isEmpty()) {
Logger.log('empty page');
} else {
try {
Logger.log('wait datatable loading spinner is present');
await BrowserVisibility.waitUntilElementIsVisible(this.rootElement.element(by.tagName(materialLocators.Progress.spinner.root)), 2000);
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName(materialLocators.Progress.spinner.root)), MAX_LOADING_TIME);
} catch (error) {
}
await BrowserVisibility.waitUntilElementIsNotVisible(
this.rootElement.element(by.tagName(materialLocators.Progress.spinner.root)),
MAX_LOADING_TIME
);
} catch (error) {}
if (await this.isEmpty()) {
Logger.log('empty page');
@@ -392,8 +414,7 @@ export class DataTableComponentPage {
try {
Logger.log('wait datatable loading spinner is present');
await BrowserVisibility.waitUntilElementIsVisible(element(by.tagName(materialLocators.Progress.bar.root)));
} catch (error) {
}
} catch (error) {}
if (await this.isEmpty()) {
Logger.log('empty page');
} else {
@@ -404,12 +425,10 @@ export class DataTableComponentPage {
// @deprecated use Playwright instead
async isColumnDisplayed(columnTitle: string): Promise<boolean> {
const isColumnDisplayed = (await this.allColumns).some(
async column => {
const columnText = await column.getText();
return columnText === columnTitle;
}
);
const isColumnDisplayed = (await this.allColumns).some(async (column) => {
const columnText = await column.getText();
return columnText === columnTitle;
});
return isColumnDisplayed;
}
@@ -447,11 +466,18 @@ export class DataTableComponentPage {
}
getCellByContent(content: string): ElementFinder {
return this.rootElement.all(by.cssContainingText(`adf-datatable-row[class*='adf-datatable-row'] div[class*='adf-datatable-cell']`, content)).first();
return this.rootElement
.all(by.cssContainingText(`adf-datatable-row[class*='adf-datatable-row'] div[class*='adf-datatable-cell']`, content))
.first();
}
async checkCellByHighlightContent(content: string): Promise<void> {
const cell = this.rootElement.element(by.cssContainingText(`adf-datatable-row[class*='adf-datatable-row'] div[class*='adf-name-location-cell-name'] span.adf-highlight`, content));
const cell = this.rootElement.element(
by.cssContainingText(
`adf-datatable-row[class*='adf-datatable-row'] div[class*='adf-name-location-cell-name'] span.adf-highlight`,
content
)
);
await BrowserVisibility.waitUntilElementIsVisible(cell);
}
@@ -461,7 +487,10 @@ export class DataTableComponentPage {
}
async clickRowByContentCheckbox(name: string): Promise<void> {
const resultElement = this.rootElement.$$(`div[data-automation-id='${name}']`).first().element(by.xpath(`ancestor::adf-datatable-row/label/${materialLocators.Checkbox.root}`));
const resultElement = this.rootElement
.$$(`div[data-automation-id='${name}']`)
.first()
.element(by.xpath(`ancestor::adf-datatable-row/label/${materialLocators.Checkbox.root}`));
browser.actions().mouseMove(resultElement);
await BrowserActions.click(resultElement);
}

View File

@@ -97,7 +97,7 @@ export class FormFields {
async getFieldPlaceHolder(fieldId: string, locator = 'input'): Promise<string> {
const placeHolderLocator = $(`${locator}#${fieldId}`);
await BrowserVisibility.waitUntilElementIsVisible(placeHolderLocator);
return BrowserActions.getAttribute(placeHolderLocator, 'data-placeholder');
return BrowserActions.getAttribute(placeHolderLocator, 'placeholder');
}
async refreshForm(): Promise<void> {

View File

@@ -17,13 +17,13 @@
import { FormFields } from '../form-fields';
import { BrowserActions } from '../../../utils/public-api';
import { $$, $ } from 'protractor';
import { $ } from 'protractor';
import { materialLocators } from '../../public-api';
export class CheckboxWidgetPage {
formFields = new FormFields();
checkboxLabel = $(`span[class*="${materialLocators.Checkbox.label.root}"]`);
checkboxLabel = $(`${materialLocators.Checkbox.root} label`);
checkboxLocator = materialLocators.Checkbox.root;
getCheckboxLabel(): Promise<string> {
@@ -31,7 +31,7 @@ export class CheckboxWidgetPage {
}
async clickCheckboxInput(fieldId: string): Promise<void> {
const checkboxInput = $$(`${this.checkboxLocator}[id="${fieldId}"] span`).first();
const checkboxInput = $(`${this.checkboxLocator}[id="${fieldId}"] input`);
await BrowserActions.click(checkboxInput);
}

View File

@@ -27,7 +27,7 @@ export class DropdownWidgetPage {
readonly searchElementLocator = TestElement.byCss('[aria-label="Search options"]');
async getSelectedOptionText(fieldId: string = 'dropdown'): Promise<string> {
return this.formFields.getFieldText(fieldId, by.css(`${materialLocators.Select.root}[id="${fieldId}"] span span`));
return this.formFields.getFieldText(fieldId, by.css(`${materialLocators.Select.root}[id="${fieldId}"] ${materialLocators.Select.value.text} span`));
}
async selectOption(option: string, locator: string = '#dropdown'): Promise<void> {

View File

@@ -26,7 +26,7 @@ export class DynamicTableWidgetPage {
labelLocator: Locator = by.css('dynamic-table-widget div div');
columnNameLocator: Locator = by.css('table[id*="dynamic-table"] th');
cancelButton = element(by.cssContainingText('button span', 'Cancel'));
editButton = element(by.cssContainingText('button span', 'edit'));
editButton = element(by.css('[data-automation-id="dynamic-table-button-edit"]'));
columnDateTime = $('#columnDateTime');
columnDate = $('#columnDate');
calendarHeader = $(materialLocators.DatetimePicker.calendar.header.date.time);

View File

@@ -26,10 +26,10 @@ export class DatePickerCalendarPage {
datePicker = $(`${materialLocators.Calendar.root}[id*="${materialLocators.Datepicker.root}"]`);
nextMonthButton = $(`button[class*="${materialLocators.Calendar.button('next')}"]`);
previousMonthButton = $(`button[class*="${materialLocators.Calendar.button('previous')}"]`);
todayDate = TestElement.byCss(`div${materialLocators.Calendar.body.today.class}`);
todayDate = TestElement.byCss(`${materialLocators.Calendar.body.today.class}`);
periodButton = $(`button[class*=${materialLocators.Calendar.button('period')}]`);
focusedElement = `div${materialLocators.Calendar.body.cell.content.class}${materialLocators.Focus.indicator}`;
focusedElement = `span${materialLocators.Calendar.body.cell.content.class}${materialLocators.Calendar.focus}`;
async getSelectedDate(): Promise<string> {
return BrowserActions.getAttribute($(`button[class*="${materialLocators.Calendar.body.active.root}"]`), 'aria-label');

View File

@@ -16,416 +16,437 @@
*/
export const materialLocators = {
Accent: {
class: '.mat-accent'
},
Accordion: {
root: 'mat-accordion'
},
Autocomplete: {
panel: {
class: '.mat-autocomplete-panel',
root: 'mat-autocomplete-panel'
}
},
Button: {
class: '.mat-button',
disabled: 'mat-button-disabled',
wrapper: '.mat-button-wrapper'
},
Calendar: {
root: 'mat-calendar',
body: {
cell: {
root: 'mat-calendar-body-cell',
content: {
class: '.mat-calendar-body-cell-content'
Accent: {
class: '.mat-mdc-accent'
},
Accordion: {
root: 'mat-accordion'
},
Autocomplete: {
panel: {
class: '.mat-mdc-autocomplete-panel',
root: 'mat-autocomplete-panel'
}
},
today: {
class: '.mat-calendar-body-today'
},
active: {
root: 'mat-calendar-body-active'
}
},
button: (navigation: 'next' | 'previous' | 'period') => `mat-calendar-${navigation}-button`
},
Card: {
root: 'mat-card',
class: '.mat-card',
content: {
class: '.mat-card-content',
root: 'mat-card-content'
Button: {
class: '.mat-mdc-button',
disabled: 'mat-button-disabled',
label: '.mdc-button__label'
},
title: {
class: '.mat-card-title',
root: 'mat-card-title'
},
actions: 'mat-card-actions',
subtitle: {
root: 'mat-card-subtitle'
}
},
Checkbox: {
root: 'mat-checkbox',
class: '.mat-checkbox',
layout: '.mat-checkbox-layout',
label: {
class: '.mat-checkbox-label',
root: 'mat-checkbox-label'
},
checked: {
class: '.mat-checkbox-checked',
root: 'mat-checkbox-checked'
},
disabled: {
root: 'mat-checkbox-disabled'
},
inner: {
container: {
class: '.mat-checkbox-inner-container'
}
}
},
Checked: {
root: 'mat-checked'
},
Chip: {
root: 'mat-chip',
class: '.mat-chip',
list: {
root: 'mat-chip-list',
class: '.mat-chip-list'
}
},
Datepicker: {
root: 'mat-datepicker',
calendar: {
body: {
cell: {
content: {
class: '.mat-datepicker-calendar-body-cell-content'
}
}
}
},
toggle: {
root: 'mat-datepicker-toggle',
class: '.mat-datepicker-toggle'
}
},
DatetimePicker: {
root: 'mat-datetimepicker-content',
popup: '.mat-datetimepicker-popup',
calendar: {
header: {
date: {
class: '.mat-datetimepicker-calendar-header-date',
time: '.mat-datetimepicker-calendar-header-date-time'
Calendar: {
root: 'mat-calendar',
focus: '.mat-focus-indicator',
body: {
cell: {
root: 'mat-calendar-body-cell',
content: {
class: '.mat-calendar-body-cell-content'
}
},
today: {
class: '.mat-calendar-body-today'
},
active: {
root: 'mat-calendar-body-active'
}
},
button: (navigation: 'next' | 'previous' | 'period') => `mat-calendar-${navigation}-button`
},
Card: {
root: 'mat-card',
class: '.mat-mdc-card',
content: {
class: '.mat-mdc-card-content',
root: 'mat-card-content'
},
title: {
class: '.mat-mdc-card-title',
root: 'mat-card-title'
},
actions: 'mat-card-actions',
subtitle: {
root: 'mat-card-subtitle'
}
},
Checkbox: {
root: 'mat-checkbox',
class: '.mat-mdc-checkbox',
layout: '.mat-mdc-checkbox-layout',
label: {
class: '.mat-mdc-checkbox-label',
root: 'mat-checkbox-label'
},
checked: {
class: '.mat-mdc-checkbox-checked',
root: 'mat-checkbox-checked'
},
disabled: {
root: 'mat-checkbox-disabled'
},
inner: {
container: {
class: '.mat-mdc-checkbox-inner-container'
}
}
},
Checked: {
root: 'mdc-switch--checked'
},
Chip: {
root: 'mat-chip',
class: '.mat-mdc-chip',
list: {
root: 'mat-chip-listbox',
class: '.mat-mdc-chip-list',
option: {
class: 'mat-chip-option',
value: '.mat-mdc-chip-action-label'
}
},
grid: {
root: 'mat-chip-grid',
class: '.mat-mdc-chip-grid',
row: {
root: 'mat-chip-row',
class: '.mat-mdc-chip-row'
}
}
},
Datepicker: {
root: 'mat-datepicker',
calendar: {
body: {
cell: {
content: {
class: '.mat-mdc-datepicker-calendar-body-cell-content'
}
}
}
},
toggle: {
root: 'mat-datepicker-toggle',
class: '.mat-datepicker-toggle'
}
},
DatetimePicker: {
root: 'mat-datetimepicker-content',
popup: '.mat-datetimepicker-popup',
calendar: {
header: {
date: {
class: '.mat-datetimepicker-calendar-header-date',
time: '.mat-datetimepicker-calendar-header-date-time'
},
year: '.mat-datetimepicker-calendar-header-year'
},
body: {
active: '.mat-datetimepicker-calendar-body-active',
cell: {
class: '.mat-datetimepicker-calendar-body-cell-content',
root: 'mat-datetimepicker-calendar-body-cell-content'
}
},
content: '.mat-datetimepicker-calendar-content',
nextButton: '.mat-datetimepicker-calendar-next-button'
},
clock: {
class: '.mat-datetimepicker-clock',
hours: {
class: '.mat-datetimepicker-clock-hours'
},
minutes: {
class: '.mat-datetimepicker-clock-minutes'
},
cell: (attribute?: 'selected' | 'disabled') =>
attribute ? `mat-datetimepicker-clock-cell-${attribute}` : 'mat-datetimepicker-clock-cell'
},
month: {
view: 'mat-datetimepicker-month-view'
},
toggle: {
root: 'mat-datetimepicker-toggle',
class: '.mat-datetimepicker-toggle'
}
},
Dialog: {
container: {
root: 'mat-dialog-container',
class: '.mat-mdc-dialog-container'
},
content: {
root: 'mat-dialog-content',
class: '.mat-mdc-dialog-content'
},
actions: {
class: `.mat-mdc-dialog-actions`,
root: `mat-dialog-actions`
},
title: '.mat-mdc-dialog-title'
},
Disabled: {
root: 'mat-disabled'
},
Drawer: {
class: '.mat-mdc-drawer',
end: '.mat-mdc-drawer-end'
},
Error: {
class: '.mat-mdc-error',
root: 'mat-error'
},
Expanded: {
class: '.mat-expanded',
root: 'mat-expanded'
},
Expansion: {
panel: {
root: 'mat-expansion-panel',
class: '.mat-expansion-panel',
body: {
class: '.mat-mdc-expansion-panel-body'
},
content: {
class: '.mat-expansion-panel-content'
},
header: {
class: '.mat-expansion-panel-header',
root: 'mat-expansion-panel-header'
},
title: '.mat-expansion-panel-header-title'
},
indicator: '.mat-expansion-indicator'
},
Focus: {
indicator: '.mat-mdc-focus-indicator'
},
Focused: {
root: 'mat-focused'
},
Form: {
field: {
class: '.mat-mdc-form-field',
root: 'mat-form-field',
label: {
wrapper: '.mat-mdc-form-field-label-wrapper'
}
},
fieldInfix: '.mat-mdc-form-field-infix'
},
Header: {
cell: '.mat-mdc-header-cell'
},
Hint: {
class: 'mat-hint'
},
Icon: {
root: 'mat-icon',
class: '.mat-mdc-icon',
button: {
class: '.mat-mdc-icon-button',
root: 'mat-icon-button'
}
},
Input: {
class: '.mat-mdc-input-element'
},
Label: {
root: 'mat-label'
},
List: {
class: '.mat-mdc-list',
root: 'mat-list',
item: {
root: 'mat-list-item',
class: '.mat-mdc-list-item'
},
option: 'mat-list-option',
text: {
class: '.mat-mdc-list-text'
},
content: {
class: '.mdc-list-item__content'
},
selectionList: 'mat-selection-list'
},
Menu: {
content: {
class: '.mat-mdc-menu-content',
root: 'mat-mdc-menu-content'
},
panel: '.mat-mdc-menu-panel',
item: {
class: '.mat-mdc-menu-item',
submenu: {
trigger: {
root: `mat-menu-item-submenu-trigger`
}
}
}
},
Month: {
content: '.mat-mdc-month-content'
},
Option: {
root: 'mat-option',
class: '.mat-mdc-option',
group: 'mat-optgroup',
text: {
class: '.mdc-list-item__primary-text',
root: 'span'
}
},
Paginator: {
class: '.mat-mdc-paginator',
range: {
label: '.mat-mdc-paginator-range-label'
},
navigation: (rangeAction: string) => `.mat-mdc-paginator-navigation-${rangeAction}`
},
Panel: {
title: 'mat-panel-title'
},
Primary: {
class: '.mat-mdc-primary'
},
Progress: {
bar: {
root: 'mat-progress-bar',
class: '.mat-mdc-progress-bar'
},
spinner: {
root: 'mat-progress-spinner',
class: '.mat-mdc-progress-spinner'
}
},
Radio: {
root: 'mat-radio',
button: {
class: '.mat-mdc-radio-button',
root: 'mat-radio-button'
},
group: 'mat-radio-group',
checked: 'mat-radio-checked',
label: '.mat-mdc-radio-label'
},
Ripple: {
class: '.mat-mdc-ripple',
element: {
class: '.mat-mdc-ripple-element',
root: 'mat-ripple-element'
}
},
Select: {
root: 'mat-select',
class: '.mat-mdc-select',
arrow: {
class: '.mat-mdc-select-arrow',
wrapper: {
root: '.mat-mdc-select-arrow-wrapper'
}
},
placeholder: {
class: '.mat-mdc-select-placeholder'
},
panel: {
class: '.mat-mdc-select-panel',
wrap: '.mat-mdc-select-panel-wrap'
},
value: {
class: '.mat-mdc-select-value',
text: '.mat-mdc-select-value-text'
},
minLine: '.mat-mdc-select-min-line',
trigger: '.mat-mdc-select-trigger'
},
Slide: {
toggle: {
class: '.mat-mdc-slide-toggle',
root: 'mat-slide-toggle',
input: '.mat-mdc-slide-toggle-input',
checked: 'mat-mdc-slide-toggle-checked'
}
},
Selection: {
list: {
root: 'mat-selection-list'
}
},
Sidenav: {
root: 'mat-sidenav'
},
Snackbar: {
container: {
class: '.mat-mdc-snack-bar-container'
}
},
Sort: {
header: {
container: '.mat-mdc-sort-header-container'
}
},
Spinner: {
root: 'mat-spinner'
},
Tab: {
disabled: '.mat-mdc-tab-disabled',
header: {
class: '.mat-mdc-tab-header',
pagination: {
after: '.mat-mdc-tab-header-pagination-after',
before: '.mat-mdc-tab-header-pagination-before',
chevron: '.mat-mdc-tab-header-pagination-chevron'
}
},
body: {
active: '.mat-mdc-tab-body-active',
content: '.mat-mdc-tab-body-content'
},
label: {
class: '.mdc-tab',
root: 'mat-tab-label',
active: {
class: '.mdc-tab--active',
root: 'mat-tab-label-active'
},
content: {
class: '.mdc-tab__content',
root: 'mat-tab-label-content'
}
},
labels: {
class: '.mdc-tab__text-label',
container: {
class: '.mat-mdc-tab-labels'
}
},
list: '.mat-mdc-tab-list'
},
Table: {
class: '.mat-mdc-table',
root: 'mat-table',
row: {
root: 'mat-row',
class: '.mat-mdc-row'
},
year: '.mat-datetimepicker-calendar-header-year'
},
body: {
active: '.mat-datetimepicker-calendar-body-active',
cell: {
class: '.mat-datetimepicker-calendar-body-cell-content',
root: 'mat-datetimepicker-calendar-body-cell-content'
class: '.mat-mdc-cell',
root: 'mat-cell'
},
column: (matColumn: string) => `.mat-mdc-column-${matColumn}`
},
Toolbar: {
root: 'mat-toolbar',
class: '.mat-mdc-toolbar'
},
Tooltip: {
root: 'mat-tooltip-component',
class: '.mat-mdc-tooltip',
trigger: '.mat-mdc-tooltip-trigger'
},
Tree: {
root: 'mat-tree',
node: {
root: 'mat-tree-node'
}
},
content: '.mat-datetimepicker-calendar-content',
nextButton: '.mat-datetimepicker-calendar-next-button'
},
clock: {
class: '.mat-datetimepicker-clock',
hours: {
class: '.mat-datetimepicker-clock-hours'
},
minutes: {
class: '.mat-datetimepicker-clock-minutes'
},
cell: (attribute?: 'selected' | 'disabled') => attribute ? `mat-datetimepicker-clock-cell-${attribute}` : 'mat-datetimepicker-clock-cell'
},
month: {
view: 'mat-datetimepicker-month-view'
},
toggle: {
root: 'mat-datetimepicker-toggle',
class: '.mat-datetimepicker-toggle'
}
},
Dialog: {
container: {
root: 'mat-dialog-container',
class: '.mat-dialog-container'
},
content: {
root: 'mat-dialog-content',
class: '.mat-dialog-content'
},
actions: {
class: `.mat-dialog-actions`,
root: `mat-dialog-actions`
},
title: '.mat-dialog-title'
},
Disabled: {
root: 'mat-disabled'
},
Drawer: {
class: '.mat-drawer',
end: '.mat-drawer-end'
},
Error: {
class: '.mat-error',
root: 'mat-error'
},
Expanded: {
class: '.mat-expanded',
root: 'mat-expanded'
},
Expansion: {
panel: {
root: 'mat-expansion-panel',
class: '.mat-expansion-panel',
body: {
class: '.mat-expansion-panel-body'
},
content: {
class: '.mat-expansion-panel-content'
},
header: {
class: '.mat-expansion-panel-header',
root: 'mat-expansion-panel-header'
},
title: '.mat-expansion-panel-header-title'
},
indicator: '.mat-expansion-indicator'
},
Focus: {
indicator: '.mat-focus-indicator'
},
Focused: {
root: 'mat-focused'
},
Form: {
field: {
class: '.mat-form-field',
root: 'mat-form-field',
label: {
wrapper: '.mat-form-field-label-wrapper'
}
},
fieldInfix: '.mat-form-field-infix'
},
Header: {
cell: '.mat-header-cell'
},
Hint: {
class: 'mat-hint'
},
Icon: {
root: 'mat-icon',
class: '.mat-icon',
button: {
class: '.mat-icon-button',
root: 'mat-icon-button'
}
},
Input: {
class: '.mat-input-element'
},
Label: {
root: 'mat-label'
},
List: {
class: '.mat-list',
root: 'mat-list',
item: {
root: 'mat-list-item',
class: '.mat-list-item'
},
option: 'mat-list-option',
text: {
class: '.mat-list-text'
},
selectionList: 'mat-selection-list'
},
Menu: {
content: {
class: '.mat-menu-content',
root: 'mat-menu-content'
},
panel: '.mat-menu-panel',
item: {
class: '.mat-menu-item',
submenu: {
trigger: {
root: `mat-menu-item-submenu-trigger`
}
}
}
},
Month: {
content: '.mat-month-content'
},
Option: {
root: 'mat-option',
class: '.mat-option',
group: 'mat-optgroup',
text: {
class: '.mat-option-text',
root: 'mat-option-text'
}
},
Paginator: {
class: '.mat-paginator',
range: {
label: '.mat-paginator-range-label'
},
navigation: (rangeAction: string) => `.mat-paginator-navigation-${rangeAction}`
},
Panel: {
title: 'mat-panel-title'
},
Primary: {
class: '.mat-primary'
},
Progress: {
bar: {
root: 'mat-progress-bar',
class: '.mat-progress-bar'
},
spinner: {
root: 'mat-progress-spinner',
class: '.mat-progress-spinner'
}
},
Radio: {
root: 'mat-radio',
button: {
class: '.mat-radio-button',
root: 'mat-radio-button'
},
group: 'mat-radio-group',
checked: 'mat-radio-checked',
label: '.mat-radio-label'
},
Ripple: {
class: '.mat-ripple',
element: {
class: '.mat-ripple-element',
root: 'mat-ripple-element'
}
},
Select: {
root: 'mat-select',
class: '.mat-select',
arrow: {
class: '.mat-select-arrow',
wrapper: {
root: '.mat-select-arrow-wrapper'
}
},
placeholder: {
class: '.mat-select-placeholder'
},
panel: {
class: '.mat-select-panel',
wrap: '.mat-select-panel-wrap'
},
value: {
class: '.mat-select-value',
text: '.mat-select-value-text'
},
minLine: '.mat-select-min-line',
trigger: '.mat-select-trigger'
},
Slide: {
toggle: {
class: '.mat-slide-toggle',
root: 'mat-slide-toggle',
input: '.mat-slide-toggle-input'
}
},
Selection: {
list: {
root: 'mat-selection-list'
}
},
Sidenav: {
root: 'mat-sidenav'
},
Snackbar: {
container: {
class: '.mat-snack-bar-container'
}
},
Sort: {
header: {
container: '.mat-sort-header-container'
}
},
Spinner: {
root: 'mat-spinner'
},
Tab: {
disabled: '.mat-tab-disabled',
header: {
class: '.mat-tab-header',
pagination: {
after: '.mat-tab-header-pagination-after',
before: '.mat-tab-header-pagination-before',
chevron: '.mat-tab-header-pagination-chevron'
}
},
body: {
active: '.mat-tab-body-active',
content: '.mat-tab-body-content'
},
label: {
class: '.mat-tab-label',
root: 'mat-tab-label',
active: {
class: '.mat-tab-label-active',
root: 'mat-tab-label-active'
},
content: {
class: '.mat-tab-label-content',
root: 'mat-tab-label-content'
}
},
labels: {
class: '.mat-tab-labels'
},
list: '.mat-tab-list'
},
Table: {
class: '.mat-table',
root: 'mat-table',
row: {
root: 'mat-row',
class: '.mat-row'
},
cell: {
class: '.mat-cell',
root: 'mat-cell'
},
column: (matColumn: string) => `.mat-column-${matColumn}`
},
Toolbar: {
root: 'mat-toolbar',
class: '.mat-toolbar'
},
Tooltip: {
root: 'mat-tooltip-component',
class: '.mat-tooltip',
trigger: '.mat-tooltip-trigger'
},
Tree: {
root: 'mat-tree',
node: {
root: 'mat-tree-node'
}
}
};

View File

@@ -22,17 +22,17 @@ import { materialLocators } from './material-locators';
export class TogglePage {
async enableToggle(toggle: ElementFinder): Promise<void> {
const check = await BrowserActions.getAttribute(toggle, 'class');
if (check.indexOf(materialLocators.Checked.root) < 0) {
const elem = toggle.$$('input').first();
const slideToggle = await BrowserActions.getAttribute(toggle, 'class');
if (slideToggle.indexOf(materialLocators.Slide.toggle.checked) < 0) {
const elem = toggle.$$('button').first();
await BrowserActions.clickScript(elem);
}
}
async disableToggle(toggle: ElementFinder): Promise<void> {
const check = await BrowserActions.getAttribute(toggle, 'class');
if (check.indexOf(materialLocators.Checked.root) >= 0) {
const elem = toggle.$$('input').first();
const slideToggle = await BrowserActions.getAttribute(toggle, 'class');
if (slideToggle.indexOf(materialLocators.Slide.toggle.checked) >= 0) {
const elem = toggle.$$('button').first();
await BrowserActions.clickScript(elem);
}
}

View File

@@ -66,7 +66,8 @@ export class SettingsPage {
silentLogin = true,
implicitFlow = true,
clientId?: string,
logoutUrl: string = '/logout'
logoutUrl: string = '/logout',
codeFlow = true
) {
await this.goToSettingsPage();
await this.setProvider('ECM');
@@ -76,6 +77,7 @@ export class SettingsPage {
await this.setIdentityHost(identityHost);
await this.setSilentLogin(silentLogin);
await this.setImplicitFlow(implicitFlow);
await this.setCodeFlow(codeFlow);
await this.setClientId(clientId);
await this.setLogoutUrl(logoutUrl);
await this.clickApply();
@@ -134,7 +136,7 @@ export class SettingsPage {
async setSilentLogin(enableToggle) {
await BrowserVisibility.waitUntilElementIsVisible(this.silentLoginToggleElement);
const isChecked = (await BrowserActions.getAttribute(this.silentLoginToggleElement, 'class')).includes(materialLocators.Checked.root);
const isChecked = (await BrowserActions.getAttribute(this.silentLoginToggleElement, 'class')).includes(materialLocators.Slide.toggle.checked);
if ((isChecked && !enableToggle) || (!isChecked && enableToggle)) {
await BrowserActions.click(this.silentLoginToggleLabel);
@@ -144,7 +146,7 @@ export class SettingsPage {
async setImplicitFlow(enableToggle) {
await BrowserVisibility.waitUntilElementIsVisible(this.implicitFlowElement);
const isChecked = (await BrowserActions.getAttribute(this.implicitFlowElement, 'class')).includes(materialLocators.Checked.root);
const isChecked = (await BrowserActions.getAttribute(this.implicitFlowElement, 'class')).includes(materialLocators.Slide.toggle.checked);
if ((isChecked && !enableToggle) || (!isChecked && enableToggle)) {
await BrowserActions.click(this.implicitFlowLabel);

View File

@@ -49,7 +49,7 @@ export class ViewerPage {
infoSideBar = $('#adf-right-sidebar');
viewer = $('adf-viewer');
imgViewer = $('adf-img-viewer');
activeTab = $(`div[class*="${materialLocators.Tab.label.active.root}"]`);
activeTab = $(`div${materialLocators.Tab.label.active.class}`);
toolbar = $('#adf-viewer-toolbar');
canvasLayer = $$('.canvasWrapper > canvas').first();
@@ -253,7 +253,7 @@ export class ViewerPage {
}
async checkTabIsActive(tabName: string): Promise<void> {
const materialLocatorPart = `div${materialLocators.Tab.labels.class} div${materialLocators.Tab.label.active.class} ${materialLocators.Tab.label.content.class}`;
const materialLocatorPart = `div${materialLocators.Tab.label.active.class} ${materialLocators.Tab.label.content.class}`;
const tab = element(by.cssContainingText(`.adf-info-drawer-layout-content ${materialLocatorPart}`, tabName));
await BrowserVisibility.waitUntilElementIsVisible(tab);
}

View File

@@ -37,8 +37,8 @@ export class EditTaskFilterCloudComponentPage {
id = $('input[data-automation-id="adf-cloud-edit-task-property-taskId"]');
processDefinitionId = $('input[data-automation-id="adf-cloud-edit-task-property-processDefinitionId"]');
processInstanceId = $('input[data-automation-id="adf-cloud-edit-task-property-processInstanceId"]');
lastModifiedFrom = $('input[data-placeholder="LastModifiedFrom"]');
lastModifiedTo = $('input[data-placeholder="LastModifiedTo"]');
lastModifiedFrom = $('input[placeholder="LastModifiedFrom"]');
lastModifiedTo = $('input[placeholder="LastModifiedTo"]');
parentTaskId = $('input[data-automation-id="adf-cloud-edit-task-property-parentTaskId"]');
owner = $('input[data-automation-id="adf-cloud-edit-task-property-owner"]');
saveButton = $('[data-automation-id="adf-filter-action-save"]');

View File

@@ -34,7 +34,9 @@ export class AttachFileWidgetCloudPage {
await BrowserVisibility.waitUntilElementIsVisible(this.widget.$(this.filesListLocator));
}
getFileAttachedLocatorByContainingText = async (text: string): Promise<ElementFinder> => this.widget.$(this.filesListLocator).element(by.cssContainingText('table tbody tr td span ', text));
async getFileAttachedLocatorByContainingText(text: string): Promise<ElementFinder> {
return this.widget.$(this.filesListLocator).element(by.cssContainingText('span', text));
}
assignWidget(fieldId: string): void {
this.widget = $(`adf-form-field div[id='field-${fieldId}-container']`);

View File

@@ -60,7 +60,7 @@ export class GroupCloudComponentPage {
async checkSelectedGroup(group: string): Promise<boolean> {
try {
await TestElement.byText(`${materialLocators.Chip.root}[data-automation-id*="adf-cloud-group-chip-"]`, group).waitVisible();
await TestElement.byText(`${materialLocators.Chip.grid.row.root}[data-automation-id*="adf-cloud-group-chip-"]`, group).waitVisible();
return true;
} catch (e) {
return false;
@@ -68,11 +68,11 @@ export class GroupCloudComponentPage {
}
async checkGroupNotSelected(group: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.cssContainingText(`${materialLocators.Chip.root}[data-automation-id*="adf-cloud-group-chip-"]`, group)));
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.cssContainingText(`${materialLocators.Chip.grid.row.root}[data-automation-id*="adf-cloud-group-chip-"]`, group)));
}
async removeSelectedGroup(group: string): Promise<void> {
const locator = $(`${materialLocators.Chip.root}[data-automation-id*="adf-cloud-group-chip-${group}"] ${materialLocators.Icon.root}`);
const locator = $(`${materialLocators.Chip.grid.row.root}[data-automation-id*="adf-cloud-group-chip-${group}"] ${materialLocators.Icon.root}`);
await BrowserActions.click(locator);
}

View File

@@ -29,8 +29,8 @@ export class PeopleCloudComponentPage {
formFields = new FormFields();
labelLocator: Locator = by.css(`label[class*='adf-label']`);
inputLocator: Locator = by.css('input');
assigneeChipList = $(`${materialLocators.Chip.list.root}[data-automation-id="adf-cloud-people-chip-list"]`);
noOfUsersDisplayed = $$(`${materialLocators.Chip.list.root} span.adf-people-label-name`);
assigneeChipList = $(`${materialLocators.Chip.grid.root}[data-automation-id="adf-cloud-people-chip-list"]`);
noOfUsersDisplayed = $$(`${materialLocators.Chip.grid.root} span.adf-people-label-name`);
getAssigneeRowLocatorByContainingName = async (name: string): Promise<ElementFinder> => element.all(by.cssContainingText(`${materialLocators.Option.root} span.adf-people-label-name`, name)).first();
@@ -65,12 +65,12 @@ export class PeopleCloudComponentPage {
async getChipAssignee(): Promise<string> {
await BrowserVisibility.waitUntilElementIsVisible(this.assigneeChipList);
return this.assigneeChipList.all(by.css(materialLocators.Chip.root)).first().getText();
return this.assigneeChipList.all(by.css(materialLocators.Chip.grid.row.root)).first().getText();
}
async getChipAssigneeCount(): Promise<number> {
await BrowserVisibility.waitUntilElementIsVisible(this.assigneeChipList);
return this.assigneeChipList.all(by.css(materialLocators.Chip.root)).count();
return this.assigneeChipList.all(by.css(materialLocators.Chip.grid.row.root)).count();
}
async checkUserIsDisplayed(name: string): Promise<boolean> {

View File

@@ -64,7 +64,7 @@ export class StartProcessCloudPage {
async selectFirstOptionFromProcessDropdown(): Promise<void> {
await this.clickProcessDropdownArrow();
const selectFirstProcessDropdown = $$('.mat-option-text').first();
const selectFirstProcessDropdown = $$('mat-option').first();
await BrowserActions.click(selectFirstProcessDropdown);
}