Files
lucia-frontend/cypress/e2e/fileUploadEtc.cy.js
2024-01-24 16:26:59 +08:00

105 lines
5.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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.');
})
});