From 005464ea1c566755ed6067f3898f7b4a256dda5b Mon Sep 17 00:00:00 2001 From: Raju Udava Date: Fri, 19 Nov 2021 23:30:17 +0530 Subject: [PATCH] test(cypress): excel import using URL Signed-off-by: Raju Udava --- .../templateParsers/ExcelTemplateAdapter.js | 2 +- .../sampleFiles/Financial Sample.xlsx | Bin 0 -> 83418 bytes .../cypress/fixtures/sampleFiles/iFrame.html | 16 ++ .../common/7a_create_project_from_excel.js | 151 ++++++++++++++++-- 4 files changed, 158 insertions(+), 11 deletions(-) create mode 100644 scripts/cypress/fixtures/sampleFiles/Financial Sample.xlsx create mode 100644 scripts/cypress/fixtures/sampleFiles/iFrame.html diff --git a/packages/nc-gui/components/import/templateParsers/ExcelTemplateAdapter.js b/packages/nc-gui/components/import/templateParsers/ExcelTemplateAdapter.js index 326b46f9fa..7d978a7a19 100644 --- a/packages/nc-gui/components/import/templateParsers/ExcelTemplateAdapter.js +++ b/packages/nc-gui/components/import/templateParsers/ExcelTemplateAdapter.js @@ -52,7 +52,7 @@ export default class ExcelTemplateAdapter extends TemplateGenerator { for (let col = 0; col < rows[0].length; col++) { let cn = (rows[0][col] || - `field${col + 1}`).replace(/\./, '_') + `field${col + 1}`).replace(/\./, '_').trim() if (cn in columnNamePrefixRef) { cn = `${cn}${++columnNamePrefixRef[cn]}` diff --git a/scripts/cypress/fixtures/sampleFiles/Financial Sample.xlsx b/scripts/cypress/fixtures/sampleFiles/Financial Sample.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f049f345b8373e33311725be7347059ae1b26887 GIT binary patch literal 83418 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%0AZu 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

xm>|k*JqqGlZMi>=y|{j_vgTBR6cL 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 literal 0 HcmV?d00001 diff --git a/scripts/cypress/fixtures/sampleFiles/iFrame.html b/scripts/cypress/fixtures/sampleFiles/iFrame.html new file mode 100644 index 0000000000..e5bf5edc11 --- /dev/null +++ b/scripts/cypress/fixtures/sampleFiles/iFrame.html @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/scripts/cypress/integration/common/7a_create_project_from_excel.js b/scripts/cypress/integration/common/7a_create_project_from_excel.js index 335d1dbd3e..53eb7b026b 100644 --- a/scripts/cypress/integration/common/7a_create_project_from_excel.js +++ b/scripts/cypress/integration/common/7a_create_project_from_excel.js @@ -4,26 +4,60 @@ import { projectsPage } from "../../support/page_objects/navigation" import { mainPage } from "../../support/page_objects/mainPage" -import { isTestSuiteActive } from "../../support/page_objects/projectConstants" +import { roles, isTestSuiteActive } from "../../support/page_objects/projectConstants" // stores sheet names (table name) let sheetList // stores table data (read from excel) let sheetData +//let UrlSheetData + +let URL = 'https://go.microsoft.com/fwlink/?LinkID=521962' let filepath = `sampleFiles/simple.xlsx` +// let UrlFilePath = `sampleFiles/Financial Sample.xlsx` + let expectedData = { 0: ['number', 'Number'], 1: ['float', 'Decimal'], 2: ['text', 'SingleLineText'] } +let UrlFileExpectedData = { + 0: ['Segment', 'SingleSelect', ['Government']], + 1: ['Country', 'SingleSelect', ['Canada']], + 2: ['Product', 'SingleSelect', ['Carretera']], + 3: ['Discount Band', 'SingleSelect', ['None']], + 4: ['Units Sold', 'Decimal', [1618.5]], + 5: ['Manufacturing Price', 'Number', [3]], + 6: ['Sale Price', 'Number', [20]], + 7: ['Gross Sales', 'Decimal', [32370]], + 8: ['Discounts', 'Decimal', [0]], + 9: ['Sales', 'Decimal', [32370]], + 10: ['COGS', 'Decimal', [16185]], + 11: ['Profit', 'Decimal', [16185]], + 12: ['Date', 'Date', ['2014-01-01']], + 13: ['Month Number', 'Number', [1]], + 14: ['Month Name', 'SingleSelect', ['January']], + 15: ['Year', 'SingleSelect', [2014]] +} + // let filepath = `sampleFiles/sample.xlsx` // let expectedData = { -// 0: ['number', 'Number'], -// 1: ['float', 'Decimal'], -// 2: ['text', 'SingleLineText'] +// 0: ['number', 'Number'], +// 1: ['float', 'Decimal'], +// 2: ['text', 'SingleLineText'], +// 3: ['boolean', 'Checkbox'], +// 4: ['currency', 'Currency'], +// 5: ['date', 'Date'], +// 6: ['field7', 'SingleLineText'], +// 7: ['multi line', 'LongText'], +// 8: ['multi select', 'MultiSelect'], +// 9: ['field10', 'SingleLineText'], +// 10: ['formula', 'Decimal'], +// 11: ['percentage', 'Decimal'], +// 12: ['dateTime', 'DateTime'] // } export const genTest = (type, xcdb) => { @@ -46,10 +80,16 @@ export const genTest = (type, xcdb) => { .then((rows) => { cy.log(rows) sheetData = rows - }) + }) + + // cy.task('readXlsx', { file: `./scripts/cypress/fixtures/${UrlFilePath}`, sheet: "Sheet1" }) + // .then((rows) => { + // cy.log(rows) + // UrlSheetData = rows + // }) }) - it('Upload excel as template', () => { + it('File Upload: Upload excel as template', () => { mainPage.toolBarTopLeft(mainPage.HOME).click() @@ -63,7 +103,7 @@ export const genTest = (type, xcdb) => { cy.get('.nc-btn-use-template', { timeout: 120000 }).should('exist') }) - it('Verify pre-load template page', () => { + it('File Upload: Verify pre-load template page', () => { cy.getActiveContentModal().find('.v-expansion-panel').then((sheets) => { @@ -77,7 +117,7 @@ export const genTest = (type, xcdb) => { // for each sheet, expand to verify table names & their data types cy.wrap(sheets[i]).find('.mdi-chevron-down').click() - cy.wait(500) + cy.wait(1000) cy.get('.v-data-table').find('tr:visible').then((row) => { for (let j = 1; j < row.length; j++) { @@ -102,7 +142,7 @@ export const genTest = (type, xcdb) => { }) }) - it('Verify loaded data', () => { + it('File Upload: Verify loaded data', () => { // create rest/ gql project cy.get('.nc-btn-use-template', { timeout: 120000 }).click() @@ -123,7 +163,7 @@ export const genTest = (type, xcdb) => { cy.openTableTab('Sheet2') for (const [key, value] of Object.entries(expectedData)) { mainPage.getCell(value[0], 1).contains(sheetData[0][value[0]]).should('exist') - mainPage.getCell(value[0], 2).contains(sheetData[1][value[0]]).should('exist') + mainPage.getCell(value[0], 2).contains(sheetData[1][value[0]]).should('exist') } cy.closeTableTab('Sheet2') @@ -133,7 +173,98 @@ export const genTest = (type, xcdb) => { mainPage.getCell(value[0], 2).contains(sheetData[1][value[0]]).should('exist') } cy.closeTableTab('Sheet3') + + // delete project once all operations are completed + mainPage.toolBarTopLeft(mainPage.HOME).click() + cy.wait(1000) + cy.get(`.nc-${type}-project-row .mdi-delete-circle-outline`, { timeout: 10000 }) + .last() + .invoke('show') + .click(); + cy.contains('Submit') + .closest('button') + .click(); + }) + + + it('URL: Upload excel as template', () => { + + // click on "New Project" + cy.get(':nth-child(5) > .v-btn', { timeout: 20000 }).click() + + // Subsequent form, select (+ Create) option + cy.get('.nc-create-project-from-excel', { timeout: 20000 }).click({ force: true }) + + cy.getActiveModal().find('.caption').contains('URL').click() + cy.get('.nc-excel-import-tab-item').find('input[type="url"]').click().type(URL) + cy.get('.nc-excel-import-tab-item').find('button').contains('Load').click() + + cy.get('.nc-btn-use-template', { timeout: 120000 }).should('exist') }) + + it('URL: Verify pre-load template page', () => { + + cy.getActiveContentModal().find('.v-expansion-panel').then((sheets) => { + + for (let i = 0; i < sheets.length; i++) { + + // verify if all sheet names are correct + cy.wrap(sheets[i]).find('.title').then((blk) => { + cy.log(blk.text().trim()) + expect(blk.text().trim()).to.equal('Sheet1') + }) + + // for each sheet, expand to verify table names & their data types + cy.wrap(sheets[i]).find('.mdi-chevron-down').click() + cy.wait(3000).then(() => { + cy.get('.v-data-table').find('tr:visible').then((row) => { + + // verification restricting to 10, as others need to be scrolled back into view + for (let j = 1; j <= 10/*row.length*/; j++) { + + // column name to match input in excel + cy.wrap(row[j]).find('[placeholder="Column name"]').then((obj) => { + cy.log(obj[0].value) + expect(obj[0].value).to.equal(UrlFileExpectedData[j-1][0]) + }) + + // datatype to match expected output + cy.wrap(row[j]).find('span.caption').then((obj) => { + cy.log(obj[0].innerText) + expect(obj[0].innerText).to.equal(UrlFileExpectedData[j-1][1]) + }) + } + }) + }) + + // unwind + cy.wrap(sheets[i]).find('.mdi-chevron-down').click() + } + }) + }) + + it('URL: Verify loaded data', () => { + + // create rest/ gql project + cy.get('.nc-btn-use-template', { timeout: 120000 }).click() + + // wait for loading to be completed + projectsPage.waitHomePageLoad() + + // open sheet & validate contents + // sheetData contains data read from excel in format + // 0: { float: 1.1, number: 1, text: "abc" } + // 1: { float: 1.2, number: 0, text: "def" } + + cy.openTableTab('Sheet1') + let idx = 0 + for (const [key, value] of Object.entries(UrlFileExpectedData)) { + if(UrlFileExpectedData[idx][1] != 'Date') + mainPage.getCell(value[0], 1).contains(UrlFileExpectedData[idx++][2][0]).should('exist') + } + cy.closeTableTab('Sheet1') + }) + after(() => { // delete project once all operations are completed