From 19cfc548a1834ad1664b7c481ff18d9f7de2fa8e Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 26 Aug 2021 20:09:50 +0530 Subject: [PATCH] test(cypress): Add test for filter, sort, fields, column, row creation Signed-off-by: Pranav C --- .../graphql/project_operations_spec.js | 3 + .../integration/rest/api_operations_spec.js | 60 ++++++++++++++++++- .../integration/rest/table_operations_spec.js | 2 + docker-compose-cypress.yml | 3 + .../spreadsheet/components/columnFilter.vue | 10 ++-- .../components/columnFilterMenu.vue | 1 + .../spreadsheet/components/fieldsMenu.vue | 1 + .../spreadsheet/components/pagination.vue | 3 +- .../spreadsheet/components/sortListMenu.vue | 5 +- .../project/spreadsheet/rowsXcDataTable.vue | 1 + packages/nocodb/package-lock.json | 2 +- 11 files changed, 80 insertions(+), 11 deletions(-) diff --git a/cypress/integration/graphql/project_operations_spec.js b/cypress/integration/graphql/project_operations_spec.js index 54ab327233..49ae751654 100644 --- a/cypress/integration/graphql/project_operations_spec.js +++ b/cypress/integration/graphql/project_operations_spec.js @@ -16,11 +16,14 @@ describe('GraphQL Project operations', () => { cy.contains('Ok & Save Project', {timeout: 3000}).click() cy.url({timeout: 12000}).should('contain', '#/nc/') }); + it('Stop Project', () => { + cy.wait(100000) // cy.get('.nc-graphql-project-row .mdi-stop-circle-outline', {timeout: 10000}).last().trigger('onmouseover').trigger('mouseenter') cy.get('.nc-graphql-project-row .mdi-stop-circle-outline', {timeout: 10000}).last().invoke('show').click(); cy.contains('Submit').closest('button').click(); }); + it('Start Project', () => { cy.get('.nc-graphql-project-row .mdi-play-circle-outline', {timeout: 10000}).last().invoke('show').click(); cy.contains('Submit').closest('button').click(); diff --git a/cypress/integration/rest/api_operations_spec.js b/cypress/integration/rest/api_operations_spec.js index 5e2a4afe21..af84ee632c 100644 --- a/cypress/integration/rest/api_operations_spec.js +++ b/cypress/integration/rest/api_operations_spec.js @@ -6,13 +6,69 @@ describe('Rest api - CRUD/Filter', () => { // open country table cy.openTableTab('Country'); + // cy.intercept({ + // method: "GET", + // url: "/nc/**/api/v1/Country**", + // hostname: 'localhost', + // port: 8080 + // }).as("dataGetFirst"); + // cy.wait("@dataGetFirst"); + // todo: wait until api call completes + cy.wait(2000) }) - // create a new random table + // check pagination it('Check country table - ', () => { - cy.get('.nc-pagination').should('exist') + cy.get('.nc-pagination').should('exist'); + cy.get('.nc-pagination .v-pagination > li:last-child').click() + cy.get('.nc-pagination .v-pagination > li:contains(2)').should('have.class', 'v-pagination__item--active') }); + // create new row + it('Create new row', () => { + cy.get('.nc-add-new-row-btn').click(); + + cy.get('#data-table-form-Country > input').first().type('Test Country'); + + cy.contains('Save Row').filter('button').click() + + // todo: verify + }) + + // Test sort + it('Add sort option', () => { + cy.get('.nc-sort-menu-btn').click() + cy.contains('Add Sort Option').click(); + cy.get('.nc-sort-field-select div').first().click() + cy.get('.menuable__content__active .v-list-item:contains(Country)').click() + cy.get('.nc-sort-dir-select div').first().click() + cy.get('.menuable__content__active .v-list-item:contains("Z -> A")').click() + cy.contains('Zambia').should('exist') + }) + + + // Test fields + it('Add fields options', () => { + cy.get('.nc-fields-menu-btn').click() + cy.get('.menuable__content__active .v-list-item label:contains(LastUpdate)').click() + cy.get('th:contains(LastUpdate)').should('not.exist') + }) + + + // Test filter + it('Add filter options', () => { + cy.get('.nc-filter-menu-btn').click() + cy.contains('Add Filter').click(); + + cy.get('.nc-filter-field-select').last().click(); + cy.get('.menuable__content__active .v-list-item:contains(Country)').click() + cy.get('.nc-filter-operation-select').last().click(); + cy.get('.menuable__content__active .v-list-item:contains("is equal")').click() + cy.get('.nc-filter-value-select input:text').last().type('India'); + + cy.get('td:contains(India)').should('exist') + + }) }) diff --git a/cypress/integration/rest/table_operations_spec.js b/cypress/integration/rest/table_operations_spec.js index bf34af5fed..a81492d474 100644 --- a/cypress/integration/rest/table_operations_spec.js +++ b/cypress/integration/rest/table_operations_spec.js @@ -115,4 +115,6 @@ describe('Rest api - Table', () => { }); + + }) diff --git a/docker-compose-cypress.yml b/docker-compose-cypress.yml index 8cd1891e8e..93f9e6511c 100644 --- a/docker-compose-cypress.yml +++ b/docker-compose-cypress.yml @@ -12,6 +12,8 @@ services: xc-cypress-nocodb: network_mode: host image: node:14-alpine + environment: + - EE=true volumes: - ./packages/nocodb:/home/app command: @@ -28,6 +30,7 @@ services: environment: - HOST=0.0.0.0 - PORT=3000 + - EE=true volumes: - ./packages/nc-gui:/home/app - ./packages/nc-lib-gui:/home/nc-lib-gui diff --git a/packages/nc-gui/components/project/spreadsheet/components/columnFilter.vue b/packages/nc-gui/components/project/spreadsheet/components/columnFilter.vue index 535076dad3..0d4b28c97a 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/columnFilter.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/columnFilter.vue @@ -26,7 +26,7 @@ v-else :key="i + '_4'" v-model="filter.logicOp" - class="flex-shrink-1 flex-grow-0 elevation-0 caption" + class="flex-shrink-1 flex-grow-0 elevation-0 caption " :items="['and' ,'or']" solo flat @@ -43,7 +43,7 @@ v-if="filter.readOnly" :key="i + '_5'" v-model="filter.field" - class="caption" + class="caption " placeholder="Field" solo flat @@ -60,7 +60,7 @@ v-else :key="i + '_6'" v-model="filter.field" - class="caption" + class="caption nc-filter-field-select" :items="fieldList" placeholder="Field" solo @@ -77,7 +77,7 @@ diff --git a/packages/nc-gui/components/project/spreadsheet/components/columnFilterMenu.vue b/packages/nc-gui/components/project/spreadsheet/components/columnFilterMenu.vue index 28ee726029..254bd98fa6 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/columnFilterMenu.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/columnFilterMenu.vue @@ -8,6 +8,7 @@ overlap >
diff --git a/packages/nc-gui/components/project/spreadsheet/components/sortListMenu.vue b/packages/nc-gui/components/project/spreadsheet/components/sortListMenu.vue index 2df23745bf..79f8b9d73d 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/sortListMenu.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/sortListMenu.vue @@ -8,6 +8,7 @@ overlap > diff --git a/packages/nocodb/package-lock.json b/packages/nocodb/package-lock.json index 9430f6779a..6fa5a5463b 100644 --- a/packages/nocodb/package-lock.json +++ b/packages/nocodb/package-lock.json @@ -1,6 +1,6 @@ { "name": "nocodb", - "version": "0.11.25", + "version": "0.11.26", "lockfileVersion": 1, "requires": true, "dependencies": {