diff --git a/cypress.config.mjs b/cypress.config.mjs index e1ff5a7b51..889089b86d 100644 --- a/cypress.config.mjs +++ b/cypress.config.mjs @@ -45,11 +45,36 @@ export default defineConfig({ devServer: { framework: 'vue', bundler: 'vite', + viteConfig: { + plugins: [vue(), nodePolyfills()], + optimizeDeps: { + exclude: [ + 'vite-plugin-node-polyfills/shims/buffer', + 'vite-plugin-node-polyfills/shims/global', + 'vite-plugin-node-polyfills/shims/process' + ], + force: true + }, + define: { + global: 'globalThis', + }, + }, }, setupNodeEvents(on, config) { on('file:preprocessor', vitePreprocessor({ plugins: [vue(), nodePolyfills()], configFile: false, + optimizeDeps: { + exclude: [ + 'vite-plugin-node-polyfills/shims/buffer', + 'vite-plugin-node-polyfills/shims/global', + 'vite-plugin-node-polyfills/shims/process' + ], + force: true + }, + define: { + global: 'globalThis', + }, })) return config }, diff --git a/cypress/component/ContentReferenceWidget.cy.js b/cypress/component/ContentReferenceWidget.cy.js index de260e1385..acd16c04d5 100644 --- a/cypress/component/ContentReferenceWidget.cy.js +++ b/cypress/component/ContentReferenceWidget.cy.js @@ -114,5 +114,5 @@ function mountContentWidget(richObject) { // Get some often used elements cy.get('[data-cy="contentReferenceWidget"] .options').as('options') cy.get('[data-cy="contentReferenceWidget"] .NcTable table').as('table') - cy.get('@table').find('tbody tr[data-cy="customTableRow"]').as('rows') + cy.get('@table').find('tr[data-cy="customTableRow"]').as('rows') } diff --git a/cypress/e2e/view-filtering-selection.cy.js b/cypress/e2e/view-filtering-selection.cy.js index 950bafe199..8c72204e3f 100644 --- a/cypress/e2e/view-filtering-selection.cy.js +++ b/cypress/e2e/view-filtering-selection.cy.js @@ -25,57 +25,57 @@ describe('Filtering in a view by selection columns', () => { cy.createSelectionCheckColumn('check', null, false) // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'first row') cy.fillInValueSelection('selection', 'sel1') cy.fillInValueSelectionMulti('multi selection', ['A', 'B']) cy.fillInValueSelectionCheck('check') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'second row') cy.fillInValueSelection('selection', 'sel2') cy.fillInValueSelectionMulti('multi selection', ['B']) cy.fillInValueSelectionCheck('check') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'third row') cy.fillInValueSelection('selection', 'sel3') cy.fillInValueSelectionMulti('multi selection', ['C', 'B', 'D']) - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'fourth row') cy.fillInValueSelectionMulti('multi selection', ['A']) cy.fillInValueSelectionCheck('check') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'fifths row') cy.fillInValueSelection('selection', 'sel4') cy.fillInValueSelectionMulti('multi selection', ['D']) cy.fillInValueSelectionCheck('check') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'sixths row') cy.fillInValueSelection('selection', 'sel1') cy.fillInValueSelectionMulti('multi selection', ['C', 'D']) cy.fillInValueSelectionCheck('check') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // add row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'sevenths row') cy.fillInValueSelection('selection', 'sel2') cy.fillInValueSelectionMulti('multi selection', ['A', 'C', 'B', 'D']) - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() }) it('Filter view for single selection', () => { @@ -89,7 +89,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -156,7 +156,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -197,7 +197,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -238,7 +238,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -246,7 +246,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container .filter-group .v-select.select').eq(2).click() cy.get('ul.vs__dropdown-menu li span[title="A"]').click() - cy.get('button').contains('Add new filter').click() + cy.get('[data-cy="filterGroupAddFilterBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(3).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(4).click() @@ -287,7 +287,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -295,7 +295,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container .filter-group .v-select.select').eq(2).click() cy.get('ul.vs__dropdown-menu li span[title="A"]').click() - cy.get('button').contains('Add new filter').click() + cy.get('[data-cy="filterGroupAddFilterBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(3).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(4).click() @@ -303,7 +303,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container .filter-group .v-select.select').eq(5).click() cy.get('ul.vs__dropdown-menu li span[title="B"]').click() - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(6).click() cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(7).click() @@ -344,7 +344,7 @@ describe('Filtering in a view by selection columns', () => { cy.get('.modal-container #settings-section_title input').type(title) // ## add filter - cy.get('button').contains('Add new filter group').click() + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="check"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -384,8 +384,8 @@ describe('Filtering in a view by selection columns', () => { cy.get('.v-popper__popper li button span').contains('Create view').click({ force: true }) cy.get('.modal-container #settings-section_title input').type(title) - // ## add filter - cy.get('button').contains('Add new filter group').click() + // ## add filter + cy.get('[data-cy="filterFormFilterGroupBtn"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(0).click() cy.get('ul.vs__dropdown-menu li span[title="check"]').click() cy.get('.modal-container .filter-group .v-select.select').eq(1).click() @@ -402,11 +402,11 @@ describe('Filtering in a view by selection columns', () => { cy.contains('.app-navigation-entry-link span', title).should('exist') // # insert a checked row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'checked row') cy.fillInValueSelectionCheck('check') cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // ## check server response for /view/{viewId}/row/{id}/present cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => { @@ -417,10 +417,10 @@ describe('Filtering in a view by selection columns', () => { cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'checked row').should('be.visible') // # insert a unchecked row - cy.get('button').contains('Create row').click() + cy.get('[data-cy="createRowBtn"]').click() cy.fillInValueTextLine('title', 'unchecked row') cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent') - cy.get('button').contains('Save').click() + cy.get('[data-cy="createRowSaveButton"]').click() // ## check server response for /view/{viewId}/row/{id}/present cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => { @@ -448,7 +448,7 @@ describe('Filtering in a view by selection columns', () => { // # inline edit row // ## uncheck row cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent') - cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container .checkbox-radio-switch').click() + cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container input').click({ force: true }) // ## check server response for /view/{viewId}/row/{id}/present cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => { diff --git a/src/App.vue b/src/App.vue index 7cf2ba5a9c..faece768d5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -166,7 +166,7 @@ export default { } - -