From 6729bf73700fab8771ba5415b6e753097a8304b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 27 Jun 2024 09:32:43 +0200 Subject: [PATCH] fix cypress MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- cypress/e2e/column-number-progress.cy.js | 6 ++---- cypress/e2e/column-selection-check.cy.js | 10 ++++----- cypress/e2e/tables-favorite.cy.js | 27 ++++++++++++------------ cypress/e2e/tables-import.cy.js | 3 +-- cypress/e2e/tables-table.cy.js | 2 +- cypress/support/commands.js | 4 ++-- src/file-actions.js | 3 --- vite.config.ts | 3 ++- 8 files changed, 26 insertions(+), 32 deletions(-) diff --git a/cypress/e2e/column-number-progress.cy.js b/cypress/e2e/column-number-progress.cy.js index 69996690e..24e1c112a 100644 --- a/cypress/e2e/column-number-progress.cy.js +++ b/cypress/e2e/column-number-progress.cy.js @@ -8,6 +8,8 @@ describe('Test column progress', () => { cy.createRandomUser().then(user => { localUser = user cy.login(localUser) + cy.visit('apps/tables') + cy.createTable(tableTitle) }) }) @@ -16,10 +18,6 @@ describe('Test column progress', () => { cy.visit('apps/tables') }) - it('Table and column setup', () => { - cy.createTable(tableTitle) - }) - it('Insert and test rows - default values', () => { cy.loadTable(tableTitle) cy.createNumberProgressColumn(columnTitle, 23, true) diff --git a/cypress/e2e/column-selection-check.cy.js b/cypress/e2e/column-selection-check.cy.js index d0686022a..dbb018c6a 100644 --- a/cypress/e2e/column-selection-check.cy.js +++ b/cypress/e2e/column-selection-check.cy.js @@ -8,6 +8,8 @@ describe('Test column ' + columnTitle, () => { cy.createRandomUser().then(user => { localUser = user cy.login(localUser) + cy.visit('apps/tables') + cy.createTable(tableTitle) }) }) @@ -16,10 +18,6 @@ describe('Test column ' + columnTitle, () => { cy.visit('apps/tables') }) - it('Table and column setup', () => { - cy.createTable(tableTitle) - }) - it('Insert and test rows - default value unchecked', () => { cy.loadTable(tableTitle) cy.createSelectionCheckColumn(columnTitle, null, true) @@ -31,7 +29,7 @@ describe('Test column ' + columnTitle, () => { // insert row cy.get('button').contains('Create row').click() - cy.get('[data-cy="selectionCheckFormSwitch"]').first().click() + cy.get('[data-cy="selectionCheckFormSwitch"]').first().click({ force: true }) cy.get('button').contains('Save').click() cy.get('.custom-table table tr td div .material-design-icon.check-circle-outline-icon').should('be.visible') @@ -49,7 +47,7 @@ describe('Test column ' + columnTitle, () => { // insert row cy.get('button').contains('Create row').click() - cy.get('[data-cy="selectionCheckFormSwitch"]').first().click() + cy.get('[data-cy="selectionCheckFormSwitch"]').first().click({ force: true }) cy.get('button').contains('Save').click() cy.get('.custom-table table tr td div .material-design-icon.radiobox-blank-icon').should('be.visible') diff --git a/cypress/e2e/tables-favorite.cy.js b/cypress/e2e/tables-favorite.cy.js index 973a9d6a0..cf69c3db2 100644 --- a/cypress/e2e/tables-favorite.cy.js +++ b/cypress/e2e/tables-favorite.cy.js @@ -15,7 +15,7 @@ describe('Favorite tables/views', () => { }) it('can favorite tables', () => { - cy.get('[data-cy="navigationTableItem"]').first().as('tutorialTable') + cy.get('[data-cy="navigationTableItem"] .app-navigation-entry').first().as('tutorialTable') cy.get('@tutorialTable').should('contain.text', 'Tutorial') cy.get('@tutorialTable').find('[aria-haspopup="menu"]').click({ force: true }) @@ -24,11 +24,11 @@ describe('Favorite tables/views', () => { cy.contains('Add to favorites').click({ force: true }) cy.wait('@favoriteTableReq').its('response.statusCode').should('equal', 200) - cy.get('@tutorialTable').parent().should('contain.text', 'Favorites') + cy.get('@tutorialTable').parent().prev().should('contain.text', 'Favorites') }) it('can remove favorite table', () => { - cy.get('[data-cy="navigationTableItem"]').first().as('tutorialTable') + cy.get('[data-cy="navigationTableItem"] .app-navigation-entry').first().as('tutorialTable') cy.get('@tutorialTable').should('contain.text', 'Tutorial') cy.get('@tutorialTable').find('[aria-haspopup="menu"]').click({ force: true }) @@ -37,54 +37,55 @@ describe('Favorite tables/views', () => { cy.contains('Remove from favorites').click({ force: true }) cy.wait('@unfavoriteTableReq').its('response.statusCode').should('equal', 200) - cy.get('@tutorialTable').parent().should('contain.text', 'Tables') + cy.get('@tutorialTable').parent().prev().should('contain.text', 'Tables') }) it('can favorite views', () => { cy.loadTable('Tutorial') cy.createView('test') - cy.get('[data-cy="navigationViewItem"]').first().as('testView') + cy.contains('[data-cy="navigationViewItem"]', 'test').first().as('testView') - cy.get('@testView').parent().parent().should('contain.text', 'Tutorial') + cy.get('@testView').closest('[data-cy="navigationTableItem"]').should('contain.text', 'Tutorial') cy.get('@testView').find('[aria-haspopup="menu"]').click({ force: true }) cy.intercept({ method: 'POST', url: '**/ocs/v2.php/apps/tables/api/2/favorites/*/*' }).as('favoriteViewReq') cy.contains('Add to favorites').click({ force: true }) cy.wait('@favoriteViewReq').its('response.statusCode').should('equal', 200) - cy.get('@testView').parent().should('contain.text', 'Favorites') + cy.get('@testView').prev().should('contain.text', 'Favorites') }) it('can unfavorite views', () => { cy.get('[data-cy="navigationViewItem"]').first().as('testView') - cy.get('@testView').parent().should('contain.text', 'Favorites') + cy.get('@testView').prev().should('contain.text', 'Favorites') cy.get('@testView').find('[aria-haspopup="menu"]').click({ force: true }) cy.intercept({ method: 'DELETE', url: '**/ocs/v2.php/apps/tables/api/2/favorites/*/*' }).as('unfavoriteViewReq') cy.contains('Remove from favorites').click({ force: true }) cy.wait('@unfavoriteViewReq').its('response.statusCode').should('equal', 200) - cy.get('@testView').parent().parent().should('contain.text', 'Tutorial') + cy.get('@testView').closest('[data-cy="navigationTableItem"]').should('contain.text', 'Tutorial') }) it('can (un)favorite views with favorited parent tables', () => { + cy.get('[data-cy="navigationTableItem"]').first().as('tutorialTable') + cy.get('@tutorialTable').find('.app-navigation-entry-link').first().click({ force: true }) cy.get('[data-cy="navigationViewItem"]').first().as('testView') cy.get('[data-cy="navigationTableItem"]').first().as('tutorialTable') - cy.get('@testView').parent().parent().should('contain.text', 'Tutorial') + cy.get('@testView').closest('[data-cy="navigationTableItem"]').should('contain.text', 'Tutorial') cy.get('@testView').find('[aria-haspopup="menu"]').click({ force: true }) cy.contains('Add to favorites').click({ force: true }) - cy.get('@testView').parent().should('contain.text', 'Favorites') + cy.get('@testView').prev().should('contain.text', 'Favorites') cy.get('@tutorialTable').should('contain.text', 'Tutorial') cy.get('@tutorialTable').find('[aria-haspopup="menu"]').first().click({ force: true }) cy.contains('Add to favorites').click({ force: true }) - cy.get('@tutorialTable').parent().should('contain.text', 'Tables') - cy.get('@testView').parent().should('not.contain.text', 'Favorites') + cy.get('@testView').closest('[data-cy="navigationTableItem"]').should('contain.text', 'Tutorial') }) }) diff --git a/cypress/e2e/tables-import.cy.js b/cypress/e2e/tables-import.cy.js index 42c3a18ad..003310689 100644 --- a/cypress/e2e/tables-import.cy.js +++ b/cypress/e2e/tables-import.cy.js @@ -87,7 +87,7 @@ if (!['stable26', 'stable27'].includes(Cypress.env('ncVersion'))) { cy.get('[data-cy-files-list-row-name="test-import.csv"] [data-cy-files-list-row-actions] .action-item button').click() cy.get('[data-cy-files-list-row-action="import-to-tables"]').click() - cy.get('[data-cy="importAsNewTableSwitch"]').click() + cy.get('[data-cy="importAsNewTableSwitch"]').click({ force: true }) cy.get('[data-cy="selectExistingTableDropdown"]').type('tutorial') cy.get('.name-parts').click() @@ -102,6 +102,5 @@ if (!['stable26', 'stable27'].includes(Cypress.env('ncVersion'))) { cy.get('[data-cy="importResultParsingErrors"]').should('contain.text', '0') cy.get('[data-cy="importResultRowErrors"]').should('contain.text', '0') }) - }) } diff --git a/cypress/e2e/tables-table.cy.js b/cypress/e2e/tables-table.cy.js index fc4d6e54f..d358594f5 100644 --- a/cypress/e2e/tables-table.cy.js +++ b/cypress/e2e/tables-table.cy.js @@ -44,7 +44,7 @@ describe('Manage a table', () => { cy.get('.modal__content button').contains('Select from Files').click() cy.get('.file-picker__files').contains('test-import').click() - cy.get('.file-picker button span').contains('Choose test-import.csv').click() + cy.get('.file-picker button span').contains('Import').click() cy.get('.modal__content button').contains('Import').click() cy.get('[data-cy="importResultColumnsFound"]').should('contain.text', '4') cy.get('[data-cy="importResultColumnsMatch"]').should('contain.text', '0') diff --git a/cypress/support/commands.js b/cypress/support/commands.js index cee88c6d5..ea5a0581b 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -192,7 +192,7 @@ Cypress.Commands.add('createDatetimeDateColumn', (title, setNow, firstColumn) => cy.get('.modal-container').get('input[placeholder*="Enter a column title"]').clear().type(title) cy.get('.columnTypeSelection .vs__open-indicator').click({ force: true }) cy.get('.multiSelectOptionLabel').contains('Date and time').click({ force: true }) - cy.get('[data-cy="createColumnDateSwitch"]').contains('Date').click({ force: true }) + cy.get('[data-cy="createColumnDateSwitch"]').parent().contains('Date').click({ force: true }) if (setNow) { cy.get('[data-cy="datetimeDateFormTodaySwitch"]').click({ force: true }) @@ -209,7 +209,7 @@ Cypress.Commands.add('createDatetimeTimeColumn', (title, setNow, firstColumn) => cy.get('.modal-container').get('input[placeholder*="Enter a column title"]').clear().type(title) cy.get('.columnTypeSelection .vs__open-indicator').click({ force: true }) cy.get('.multiSelectOptionLabel').contains('Date and time').click({ force: true }) - cy.get('[data-cy="createColumnTimeSwitch"]').contains('Time').click({ force: true }) + cy.get('[data-cy="createColumnTimeSwitch"]').parent().contains('Time').click({ force: true }) if (setNow) { cy.get('[data-cy="datetimeTimeFormNowSwitch"]').click({ force: true }) diff --git a/src/file-actions.js b/src/file-actions.js index ff903052c..d96da0376 100644 --- a/src/file-actions.js +++ b/src/file-actions.js @@ -3,9 +3,6 @@ import { spawnDialog } from '@nextcloud/dialogs' // eslint-disable-next-line import/no-unresolved import tablesIcon from '@mdi/svg/svg/table-large.svg?raw' -__webpack_nonce__ = btoa(OC.requestToken) // eslint-disable-line -__webpack_public_path__ = OC.linkTo('tables', 'js/') // eslint-disable-line - const validMimeTypes = [ 'text/csv', 'text/html', diff --git a/vite.config.ts b/vite.config.ts index b9ffbbdd8..ae77e2283 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,8 +5,9 @@ import { createAppConfig } from '@nextcloud/vite-config' import path from 'path' const config = createAppConfig({ - main: path.join(__dirname, 'src', 'main.js'), reference: path.join(__dirname, 'src', 'reference.js'), + files: path.join(__dirname, 'src', 'file-actions.js'), + main: path.join(__dirname, 'src', 'main.js'), }, { inlineCSS: true, config: {