// 每一 describe 就是一個測試套件 // 每一 it 就是一個測試命令 describe('Conformance Save', ()=>{ beforeEach(() => { cy.visit('https://REDACTED-HOST/files'); cy.login(); cy.visit('https://REDACTED-HOST/files'); }); // it('save conformance log', () => { // // enter Map // cy.url().should('include', 'files'); // cy.contains('.fileName', 'random').dblclick(); // 選取 'random' log 檔 // 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'); // // 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-log-E2Etesting'); // cy.contains('button', 'OK').click(); // cy.contains('#swal2-html-container', 'random-conformance-log-E2Etesting'); // // 回到 Files 檢查是否有新增 Filter 'random-conformance-log-E2Etesting'. // cy.visit('https://REDACTED-HOST/files'); // cy.url().should('include', 'files'); // cy.contains('.fileName', 'random-conformance-log-E2Etesting'); // }); it('save conformance filter', () => { // 先做一個 filter,再做一個 conformance filter。 // enter log 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); // select radio cy.get('#iconFilter').click(); cy.get('input#Sequence0').should('be.checked'); // 選取 Radio 'Sequence' cy.contains('label', 'Have activity(s)') // 選取 Radio 'Have activity(s)' .prev(2) .find('input') .should('have.attr', 'type', 'radio') // select the previous element .should('be.checked'); // confirm it's type radio (optional) // select table item cy.get('.allCheckboxAct') // 選取 all select .find('input') .should('not.be.visible').check({ force: true}).should('be.checked'); // 打開隱藏項目並選取 // click Alpay and click Alppy All cy.contains('button', 'Apply').click(); cy.get('#tabFunnel').click(); cy.contains('.p-timeline', 'Sequence'); cy.contains('button', 'Apply All').click(); // save log cy.contains('button', 'Save').click(); cy.contains('.swal2-title', 'SAVE NEW FILTER'); cy.get('.swal2-input').clear().type('random-to-conformance-filter-E2Etesting'); cy.contains('button', 'OK').click(); cy.contains('#swal2-html-container', 'random-to-conformance-filter-E2Etesting'); // 回到 Files 檢查是否有新增 Filter 'random-to-conformance-filter-E2Etesting' // enter Map cy.visit('https://REDACTED-HOST/files'); cy.url().should('include', 'files'); cy.get('table tr') .filter(':contains("Filter")') // 選擇 type Filter .filter(':contains("random-to-conformance-filter-E2Etesting")') // 選擇 random-to-conformance-filter-E2Etesting filter 檔 .dblclick(); // 對選中的 tr 執行雙擊 cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 cy.url().should('include', 'discover/map/filter'); // 斷言在 discover/map/filter/:id 路徑 cy.wait(2000) // enter Conformance cy.contains('li', 'CONFORMANCE').click(); // 點擊 Conformance 頁 cy.wait(2000); cy.url().should('include', '/discover/conformance/filter'); // 斷言在 discover/conformance/filter/: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').eq(1).click({ force: true }).should('be.checked'); // click apply cy.contains('button', 'Apply').click(); cy.contains('.v-toast', 'Rule applied'); // 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-filter-E2Etesting'); cy.contains('button', 'OK').click(); cy.contains('#swal2-html-container', 'random-conformance-filter-E2Etesting'); // 回到 Files 檢查是否有新增 Filter 'random-conformance-log-E2Etesting'. cy.visit('https://REDACTED-HOST/files'); cy.url().should('include', 'files'); cy.contains('.fileName', 'random-conformance-filter-E2Etesting'); }); // it('no save log', () => { // // enter log // cy.url().should('include', 'files'); // cy.contains('.fileName', 'random').dblclick(); // 選取 'random' log 檔 // cy.contains('h2', 'DISCOVER'); // 斷言在 Discover 頁 // cy.url().should('include', 'discover/map/log'); // 斷言在 discover/map/log/:id 路徑 // cy.wait(3000) // // select radio // cy.get('#iconFilter').click(); // 選取 Filter sidebar // cy.get('input#Sequence0').should('be.checked'); // 選取 Radio 'Sequence' // cy.contains('label', 'Have activity(s)') // 選取 Radio 'Have activity(s)' // .prev(2) // .find('input') // .should('have.attr', 'type', 'radio') // select the previous element // .should('be.checked'); // confirm it's type radio (optional) // // select table item // cy.get('.allCheckboxAct') // 選取 all select // .find('input') // .should('not.be.visible').check({ force: true}).should('be.checked'); // 打開隱藏項目並選取 // // click Alpay and click Alppy All // cy.contains('button', 'Apply').click(); // cy.get('#tabFunnel').click(); // cy.contains('.p-timeline', 'Sequence'); // cy.contains('button', 'Apply All').click(); // cy.wait(3000) // cy.get('#backPage').click(); // cy.contains('.swal2-title', 'LEAVE MAP'); // cy.contains('button', 'OK').click(); // cy.url().should('include', 'files'); // }) });