diff --git a/cypress/e2e/fileUploadEtc.cy.js b/cypress/e2e/fileUploadEtc.cy.js index 77595bb..e527d3b 100644 --- a/cypress/e2e/fileUploadEtc.cy.js +++ b/cypress/e2e/fileUploadEtc.cy.js @@ -68,26 +68,37 @@ describe('File Upload etc', () => { // 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(); - // }) + 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.'); + }) }); diff --git a/src/module/alertModal.js b/src/module/alertModal.js index f1d3944..eed1472 100644 --- a/src/module/alertModal.js +++ b/src/module/alertModal.js @@ -235,7 +235,7 @@ export async function uploadFailedSecond(detail) { await Swal.fire({ title: 'UPLOAD FAILED', html: `

Error(s) detected:

${manySrt} Please check.

`, - timer: 5000, // 停留5秒後自動關閉 + // timer: 5000, // 停留5秒後自動關閉 showConfirmButton: false, icon: 'error', iconColor: '#FF3366',