// 每一 describe 就是一個測試套件 // 每一 it 就是一個測試命令 describe('Conformance Save', ()=>{ beforeEach(() => { cy.visit('https://REDACTED-HOST/files'); cy.login(); cy.visit('https://REDACTED-HOST/files'); }); // it('Have activity', () => { // // enter Map // cy.url().should('include', 'files'); // cy.get('table tr') // .filter(':contains("Log")') // 選擇 type Log // .filter(':contains("random")') // 選擇 random log 檔 // .dblclick(); // 對選中的 tr 執行雙擊 // cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 // cy.url().should('include', 'discover/map/log'); // 斷言在 discover/map/log/:id 路徑 // cy.wait(2000) // // enter Conformance // cy.contains('li', 'CONFORMANCE').click(); // 點擊 Conformance 頁 // cy.wait(2000); // cy.url().should('include', '/discover/conformance/log'); // 斷言在 discover/conformance/log/:id 路徑 // cy.get('.active').should('have.text', 'CONFORMANCE'); // // select radio // cy.get('#cyp-conformance-type-radio').find('input').first().click({ force: true }).should('be.checked'); // // select list checkbox // cy.get('#cyp-conformance-list-checkbox').find('input').first().click({ force: true }).should('be.checked'); // // click apply // cy.contains('button', 'Apply').click(); // cy.contains('.v-toast', 'Rule applied'); // // 是否有顯示選擇項目 // cy.get('#cyp-conformance-result-check').should('exist'); // 不僅僅檢查元素是否存在於 DOM 中,還檢查元素是否可見,並等待一定時間(預設為 4 秒)以確保元素在這段時間內出現在畫面上。 // // save conformance log // cy.contains('button', 'Save').click(); // cy.contains('.swal2-title', 'SAVE NEW RULE'); // cy.contains('button', 'OK').click(); // cy.contains('#swal2-validation-message', 'You need to write something!'); // 不輸入要跳驗證 // cy.get('.swal2-input').clear().type('random-conformance-rule-E2Etesting'); // cy.contains('button', 'OK').click(); // cy.contains('#swal2-html-container', 'random-conformance-rule-E2Etesting'); // // 回到 Files 檢查是否有新增 Filter 'random-conformance-log-E2Etesting'. // cy.visit('https://REDACTED-HOST/files'); // cy.url().should('include', 'files'); // cy.contains('.fileName', 'random-conformance-rule-E2Etesting'); // }); // it('Activity sequence', () => { // // enter Map // cy.url().should('include', 'files'); // cy.get('table tr') // .filter(':contains("Rule")') // 選擇 type Log // .filter(':contains("random-conformance-rule-E2Etesting")') // 選擇 random log 檔 // .dblclick({ force: true }); // 對選中的 tr 執行雙擊 // cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 // cy.url().should('include', 'rule/log'); // 斷言在 discover/map/log/:id 路徑 // cy.wait(2000) // // select radio Rule Type // cy.get('#cyp-conformance-type-radio') // .find('input[value="Activity sequence"]') // .check({ force: true }) // .should('be.checked'); // // select radio Activity Sequence // cy.get('#cyp-conformance-sequence-radio') // .find('input[value="Start & End"]') // .check({ force: true }) // .should('be.checked'); // // open showbar // cy.get('#cyp-showbaricon').click(); // // select radio Start // cy.contains('p', 'Start') // .next('div') // .find('input') // .check({ force: true }) // .should('be.checked'); // // select radio End // cy.contains('p', 'End') // .next('div') // .find('input') // .check({ force: true }) // .should('be.checked'); // // click apply // cy.contains('button', 'Apply').click(); // cy.contains('.v-toast', 'Rule applied'); // // 是否有顯示選擇項目 // cy.get('#cyp-conformance-result-dot') // .find('li') // 在 ul 中找到所有的 li 元素 // .should('have.length', 2); // 斷言 li 的數量為 2 // // save log // cy.contains('button', 'Save').click(); // cy.contains('.swal2-title', 'SAVE COMPLETE'); // cy.contains('#swal2-html-container', 'random-conformance-rule-E2Etesting'); // }); // it('Activity sequence, Sequence, Directly follows', () => { // // enter Map // cy.url().should('include', 'files'); // cy.get('table tr') // .filter(':contains("Rule")') // 選擇 type Log // .filter(':contains("random-conformance-rule-E2Etesting")') // 選擇 random log 檔 // .dblclick({ force: true }); // 對選中的 tr 執行雙擊 // cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 // cy.url().should('include', 'rule/log'); // 斷言在 discover/map/log/:id 路徑 // cy.wait(2000) // // select radio Rule Type // cy.get('#cyp-conformance-type-radio') // .find('input[value="Activity sequence"]') // .check({ force: true }) // .should('be.checked'); // // select radio Activity Sequence // cy.get('#cyp-conformance-sequence-radio') // .find('input[value="Sequence"]') // .check({ force: true }) // .should('be.checked'); // // select radio Mode // cy.get('#cyp-conformance-Mode-radio') // .find('input[value="Directly follows"]') // .check({ force: true }) // .should('be.checked'); // // open showbar // cy.get('#cyp-showbaricon').click(); // // select radio Start // cy.get('div[data-draggable="true"]').eq(0).dblclick(); // 第 1 個 div // cy.get('div[data-draggable="true"]').eq(1).dblclick(); // 第 2 個 div // cy.get('div[data-draggable="true"]').eq(2).dblclick(); // 第 3 個 div // cy.contains('button', 'Apply').click(); // // click apply // cy.contains('button', 'Apply').click(); // cy.contains('.v-toast', 'Rule applied'); // // 是否有顯示選擇項目 // cy.get('#cyp-conformance-result-arrow') // .find('li') // 在 ul 中找到所有的 li 元素 // .should('have.length', 3); // 斷言 li 的數量為 2 // // save log // cy.contains('button', 'Save').click(); // cy.contains('.swal2-title', 'SAVE COMPLETE'); // cy.contains('#swal2-html-container', 'random-conformance-rule-E2Etesting'); // }); it('Activity duration', () => { // enter Map cy.url().should('include', 'files'); cy.get('table tr') .filter(':contains("Rule")') // 選擇 type Log .filter(':contains("random-conformance-rule-E2Etesting")') // 選擇 random log 檔 .dblclick({ force: true }); // 對選中的 tr 執行雙擊 cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 cy.url().should('include', 'rule/log'); // 斷言在 discover/map/log/:id 路徑 cy.wait(2000) // select radio Rule Type cy.get('#cyp-conformance-type-radio') .find('input[value="Activity duration"]') .check({ force: true }) .should('be.checked'); // open showbar cy.get('#cyp-showbaricon').click(); // select radio Start cy.contains('p', 'Activities') .next('div') .find('input') .first() .check({ force: true }) .should('be.checked'); cy.contains('button', 'Apply').click(); // change time to time range Start cy.get('#min').click(); cy.get('input[data-index="2"]').eq(0).type('59', { force: true }); // change time to time range End cy.get('#max').click(); cy.get('input[data-index="2"]').eq(0).type('0', { force: true }); // click apply cy.contains('button', 'Apply').click(); cy.contains('.v-toast', 'Rule applied'); // 是否有顯示選擇項目 cy.get('#cyp-conformance-result-check') .find('li') // 在 ul 中找到所有的 li 元素 .should('have.length', 1); // 斷言 li 的數量為 2 // save log cy.contains('button', 'Save').click(); cy.contains('.swal2-title', 'SAVE COMPLETE'); cy.contains('#swal2-html-container', 'random-conformance-rule-E2Etesting'); }); });