test: Update getters, add search and sort tests for credentials (no-changelog) (#4716)

* test(e2e): Update getters, add search and sort tests for credentials

* fix: Refactor sortOptions getter

* fix: fix merge conflict

* fix: removed double key

* fix: Add db and session reset for every credentials suite run
This commit is contained in:
Alex Grozav
2022-11-28 12:11:39 +02:00
committed by GitHub
parent e3aeaa9a87
commit 14f81c2725
8 changed files with 94 additions and 17 deletions

View File

@@ -5,13 +5,39 @@ export class CredentialsPage extends BasePage {
getters = {
emptyListCreateCredentialButton: () => cy.getByTestId('empty-resources-list').find('button'),
createCredentialButton: () => cy.getByTestId('resources-list-add'),
searchBar: () => cy.getByTestId('resources-list-search'),
credentialCards: () => cy.getByTestId('credential-card'),
credentialCard: (credentialName: string) => cy.getByTestId('credential-card')
searchInput: () => cy.getByTestId('resources-list-search'),
emptyList: () => cy.getByTestId('resources-list-empty'),
credentialCards: () => cy.getByTestId('resources-list-item'),
credentialCard: (credentialName: string) => this.getters.credentialCards()
.contains(credentialName)
.parents('[data-test-id="credential-card"]'),
.parents('[data-test-id="resources-list-item"]'),
credentialCardActions: (credentialName: string) => this.getters.credentialCard(credentialName)
.findChildByTestId('credential-card-actions'),
credentialDeleteButton: () => cy.getByTestId('action-toggle-dropdown').filter(':visible').contains('Delete')
credentialDeleteButton: () => cy.getByTestId('action-toggle-dropdown').filter(':visible').contains('Delete'),
sort: () => cy.getByTestId('resources-list-sort'),
sortOption: (label: string) => this.getters.sort().contains(label).first(),
filtersTrigger: () => cy.getByTestId('resources-list-filters-trigger'),
filtersDropdown: () => cy.getByTestId('resources-list-filters-dropdown'),
};
actions = {
search: (searchString: string) => {
const searchInput = this.getters.searchInput();
searchInput.clear();
if (searchString) {
searchInput.type(searchString);
}
},
sortBy: (type: 'nameAsc' | 'nameDesc' | 'lastUpdated' | 'lastCreated') => {
const sortTypes = {
nameAsc: 'Sort by name (A-Z)',
nameDesc: 'Sort by name (Z-A)',
lastUpdated: 'Sort by last updated',
lastCreated: 'Sort by last created',
};
this.getters.sort().click();
this.getters.sortOption(sortTypes[type]).click();
},
};
}