summaryrefslogtreecommitdiffstats
path: root/cypress
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2023-08-02 11:38:48 -0700
committerChristopher Ng <chrng8@gmail.com>2023-08-08 17:20:34 -0700
commit0f90c9423222dcfe28a3e1322772cf083ace9b77 (patch)
tree2ad8e3edb1518b9af65e7cab77af1c11ed3b99c0 /cypress
parentcd38017724c60d114b0400614967fbcb0056f9fa (diff)
downloadnextcloud-server-0f90c9423222dcfe28a3e1322772cf083ace9b77.tar.gz
nextcloud-server-0f90c9423222dcfe28a3e1322772cf083ace9b77.zip
fix(cypress): Show and hide columns
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'cypress')
-rw-r--r--cypress/e2e/settings/usersUtils.ts33
-rw-r--r--cypress/e2e/settings/users_columns.cy.ts7
2 files changed, 37 insertions, 3 deletions
diff --git a/cypress/e2e/settings/usersUtils.ts b/cypress/e2e/settings/usersUtils.ts
new file mode 100644
index 00000000000..60ca42db7d9
--- /dev/null
+++ b/cypress/e2e/settings/usersUtils.ts
@@ -0,0 +1,33 @@
+/**
+ * @copyright 2023 Christopher Ng <chrng8@gmail.com>
+ *
+ * @author Christopher Ng <chrng8@gmail.com>
+ *
+ * @license AGPL-3.0-or-later
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Assert that `element` does not exist or is not visible
+ *
+ * Useful in cases such as when NcModal is opened/closed rapidly
+ */
+export function assertNotExistOrNotVisible(element: JQuery<HTMLElement>) {
+ const doesNotExist = element.length === 0
+ const isNotVisible = !element.is(':visible')
+
+ expect(doesNotExist || isNotVisible, 'does not exist or is not visible').to.be.true
+}
diff --git a/cypress/e2e/settings/users_columns.cy.ts b/cypress/e2e/settings/users_columns.cy.ts
index 84222cc7477..67363fb578a 100644
--- a/cypress/e2e/settings/users_columns.cy.ts
+++ b/cypress/e2e/settings/users_columns.cy.ts
@@ -21,6 +21,7 @@
*/
import { User } from '@nextcloud/cypress'
+import { assertNotExistOrNotVisible } from './usersUtils.js'
const admin = new User('admin', 'admin')
@@ -43,7 +44,7 @@ describe('Settings: Show and hide columns', function() {
// close the settings dialog
cy.get('button.modal-container__close').click()
})
- cy.waitUntil(() => cy.get('.modal-container').should('not.be.visible'))
+ cy.waitUntil(() => cy.get('.modal-container').should(el => assertNotExistOrNotVisible(el)))
})
it('Can show a column', function() {
@@ -68,7 +69,7 @@ describe('Settings: Show and hide columns', function() {
// close the settings dialog
cy.get('button.modal-container__close').click()
})
- cy.waitUntil(() => cy.get('.modal-container').should('not.be.visible'))
+ cy.waitUntil(() => cy.get('.modal-container').should(el => assertNotExistOrNotVisible(el)))
// see that the language column is in the header
cy.get(`.user-list__header tr`).within(() => {
@@ -103,7 +104,7 @@ describe('Settings: Show and hide columns', function() {
// close the settings dialog
cy.get('button.modal-container__close').click()
})
- cy.waitUntil(() => cy.get('.modal-container').should('not.be.visible'))
+ cy.waitUntil(() => cy.get('.modal-container').should(el => assertNotExistOrNotVisible(el)))
// see that the last login column is not in the header
cy.get(`.user-list__header tr`).within(() => {