--- /dev/null
+/**
+ * @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
+}
*/
import { User } from '@nextcloud/cypress'
+import { assertNotExistOrNotVisible } from './usersUtils.js'
const admin = new User('admin', 'admin')
// 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() {
// 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(() => {
// 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(() => {