// Testing File Page: upload, download, delete, rename // upload: 第一階段上傳錯誤、第二階段上傳錯誤、改名、改名前後空格、回上一頁、清空 // delete: 第一階段刪除錯誤訊息 // rename: 五種改名介面是否有出現 describe('File Upload etc', () => { beforeEach(() => { cy.visit('https://REDACTED-HOST/'); cy.login(); cy.visit('https://REDACTED-HOST/files'); }); // it('Phase one worng file upload.', () => { // cy.contains('div', 'Upload').click(); // // 不是 UTF-8 // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/big5.csv'); // cy.contains('.swal2-html-container', 'UFT-8'); // cy.wait(1000); // cy.closePopup(); // // 沒有資料 // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/empty.csv'); // cy.contains('.swal2-html-container', 'Need at least one record of data.'); // cy.wait(1000); // cy.closePopup(); // // 欄位不滿 5 欄 // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/insufficient-columns.csv'); // cy.contains('.swal2-html-container', 'Need at least five columns of data.'); // cy.wait(1000); // cy.closePopup(); // // 不是 csv // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/favicon.ico'); // cy.contains('.swal2-html-container', 'CSV'); // cy.wait(1000); // cy.closePopup(); // }); // it('Upload Page, rename, reset, back to page', () => { // cy.contains('div', 'Upload').click(); // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/worngFile.csv'); // // rename // cy.get('#fileNameInput').type(' is space ').blur(); // cy.get('#fileNameInput').should('have.value', 'worngFile is space'); // cy.get('#fileNameInput').clear().type(' is space ').blur(); // cy.get('#fileNameInput').should('have.value', 'is space'); // // reset // cy.get('div[data-type="timestamp"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Timestamp*"]').click(); // 使用 filter 選擇包含特定屬性的元素 // cy.get('div[data-type="timestamp"] span').contains('Timestamp*'); // cy.get('div[data-type="case id"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Case ID*"]').click(); // cy.get('div[data-type="case id"] span').contains('Case ID*'); // cy.get('div[data-type="name"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Activity*"]').click(); // cy.get('div[data-type="name"] span').contains('Activity*'); // cy.get('div[data-type="instance"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Activity Instance ID*"]').click(); // cy.get('div[data-type="instance"] span').contains('Activity Instance ID*'); // cy.get('div[data-type="status"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Status*"]').click(); // cy.get('div[data-type="status"] span').contains('Status*'); // cy.contains('.btn', 'Reset').click(); // cy.get('div[data-type="timestamp"] span').contains('Not Assigned'); // cy.get('div[data-type="case id"] span').contains('Not Assigned'); // cy.get('div[data-type="name"] span').contains('Not Assigned'); // cy.get('div[data-type="instance"] span').contains('Not Assigned'); // cy.get('div[data-type="status"] span').contains('Not Assigned'); // // back to page // cy.contains('.btn', 'Cancel').click(); // cy.url().should('include', 'files'); // }); // it('Phase two worng file upload.', () => { // cy.contains('div', 'Upload').click(); // cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/worngFile.csv'); // // select // cy.get('div[data-type="timestamp"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Timestamp*"]').click(); // cy.get('div[data-type="timestamp"] span').contains('Timestamp*'); // cy.get('div[data-type="case id"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Case ID*"]').click(); // cy.get('div[data-type="case id"] span').contains('Case ID*'); // cy.get('div[data-type="name"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Activity*"]').click(); // cy.get('div[data-type="name"] span').contains('Activity*'); // cy.get('div[data-type="instance"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Activity Instance ID*"]').click(); // cy.get('div[data-type="instance"] span').contains('Activity Instance ID*'); // cy.get('div[data-type="status"]').click(); // cy.get('.p-dropdown-item').filter('[aria-label="Status*"]').click(); // cy.get('div[data-type="status"] span').contains('Status*'); // // send // cy.contains('.btn', 'Upload').click(); // // 'Are you sure?' SweetAlert2 的按鈕設為 display: none,使用 force: true 打開 // cy.contains('h2.swal2-title', 'ARE YOU SURE?') // .siblings('.swal2-actions') // 找到同級的 .swal2-actions // .find('button.swal2-confirm') // 在 .swal2-actions 中找到 button.swal2-confirm // .click({ force: true }); // // Error Message // cy.contains('h2.swal2-title', 'UPLOAD FAILED'); // cy.get('div.swal2-html-container').find('li').should('have.length', 5) // 確認有 5 個錯誤訊息項目 // cy.get('div.swal2-html-container li').should('contain', 'unregnizable').and('contain', 'Status'); // cy.get('div.swal2-html-container li').should('contain', 'missing').and('contain', 'name'); // cy.get('div.swal2-html-container').contains('p', 'There are more errors.'); // }); it('Right file upload.', () => { cy.contains('div', 'Upload').click(); cy.get('input[type="file"]').selectFile('cypress/fixtures/csv/rightFile.csv'); // 斷言按鈕是否禁用 cy.contains('.btn', 'Upload').should('be.disabled'); // select cy.get('div[data-type="Timestamp"]').click(); cy.get('.p-dropdown-item').filter('[aria-label="Timestamp*"]').click(); cy.get('div[data-type="Timestamp"] span').contains('Timestamp*'); cy.get('div[data-type="CaseID"]').click(); cy.get('.p-dropdown-item').filter('[aria-label="Case ID*"]').click(); cy.get('div[data-type="CaseID"] span').contains('Case ID*'); cy.get('div[data-type="Activity"]').click(); cy.get('.p-dropdown-item').filter('[aria-label="Activity*"]').click(); cy.get('div[data-type="Activity"] span').contains('Activity*'); cy.get('div[data-type="Activity_Instance"]').click(); cy.get('.p-dropdown-item').filter('[aria-label="Activity Instance ID*"]').click(); cy.get('div[data-type="Activity_Instance"] span').contains('Activity Instance ID*'); cy.get('div[data-type="Status"]').click(); cy.get('.p-dropdown-item').filter('[aria-label="Status*"]').click(); cy.get('div[data-type="Status"] span').contains('Status*'); // send cy.contains('.btn', 'Upload').click(); // 'Are you sure?' cy.contains('h2.swal2-title', 'ARE YOU SURE?').siblings('.swal2-actions').find('button.swal2-confirm').click(); cy.wait(3000); // 回到 file page cy.url().should('include', 'files'); // 只選文本內容而不包括子元素的文字 cy.get('table tbody tr:first-child td:first-child') .invoke('text') // 提取其文字 .should('include', 'rightFile'); }) });