go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/frontend/ui/cypress/integration/rule_section.spec.ts (about) 1 // Copyright 2022 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 import { setupTestRule } from './test_data'; 15 16 describe('Rule Section', () => { 17 beforeEach(() => { 18 // Login. 19 cy.visit('/').contains('Log in').click(); 20 cy.contains('LOGIN').click(); 21 22 setupTestRule(); 23 24 cy.visit('/p/chromium/rules/ea5305bc5069b449ee43ee64d26d667f'); 25 }); 26 27 it('loads rule', () => { 28 cy.get('[data-testid=bug-summary]').contains('LUCI Analysis Cypress Test Bug'); 29 cy.get('[data-testid=bug-status]').contains('Verified'); 30 cy.get('[data-testid=rule-definition]').contains('test = "cypress test 1"'); 31 cy.get('[data-testid=rule-archived]').contains('No'); 32 cy.get('[data-testid=update-bug-toggle]').get('[type=checkbox]').should('be.checked'); 33 }); 34 35 it('edit rule definition', () => { 36 cy.get('[data-testid=rule-definition-edit]').click(); 37 cy.get('[data-testid=rule-input]').type('{selectall}test = "cypress test 2"'); 38 cy.get('[data-testid=rule-edit-dialog-save]').click(); 39 cy.get('[data-testid=rule-definition]').contains('test = "cypress test 2"'); 40 cy.get('[data-testid=reclustering-progress-description]').contains('LUCI Analysis is re-clustering test results'); 41 }); 42 43 it('validation error while editing rule definition', () => { 44 cy.get('[data-testid=rule-definition-edit]').click(); 45 cy.get('[data-testid=rule-input]').type('{selectall}test = "cypress test 2"a'); 46 cy.get('[data-testid=rule-edit-dialog-save]').click(); 47 cy.get('[data-testid=snackbar]').contains('rule definition is not valid: syntax error: 1:24: unexpected token "a"'); 48 cy.get('[data-testid=rule-edit-dialog-cancel]').click(); 49 cy.get('[data-testid=rule-definition]').contains('test = "cypress test 1"'); 50 }); 51 52 it('edit bug', () => { 53 cy.get('[data-testid=bug-edit]').click(); 54 cy.get('[data-testid=bug-number').type('{selectall}920869'); 55 cy.get('[data-testid=bug-edit-dialog-save]').click(); 56 cy.get('[data-testid=bug]').contains('crbug.com/920869'); 57 cy.get('[data-testid=bug-summary]').contains('LUCI Analysis Cypress Alternate Test Bug'); 58 cy.get('[data-testid=bug-status]').contains('Fixed'); 59 }); 60 61 it('validation error while editing bug', () => { 62 cy.get('[data-testid=bug-edit]').click(); 63 cy.get('[data-testid=bug-number').type('{selectall}125a'); 64 cy.get('[data-testid=bug-edit-dialog-save]').click(); 65 cy.get('[data-testid=snackbar]').contains('not a valid monorail bug ID'); 66 cy.get('[data-testid=bug-edit-dialog-cancel]').click(); 67 cy.get('[data-testid=bug]').contains('crbug.com/920867'); 68 }); 69 70 it('archive and restore', () => { 71 cy.get('[data-testid=rule-archived-toggle]').contains('Archive').click(); 72 cy.get('[data-testid=confirm-dialog-cancel]').click(); 73 cy.get('[data-testid=rule-archived]').contains('No'); 74 75 cy.get('[data-testid=rule-archived-toggle]').contains('Archive').click(); 76 cy.get('[data-testid=confirm-dialog-confirm]').click(); 77 cy.get('[data-testid=rule-archived]').contains('Yes'); 78 79 cy.get('[data-testid=rule-archived-toggle]').contains('Restore').click(); 80 cy.get('[data-testid=confirm-dialog-confirm]').click(); 81 cy.get('[data-testid=rule-archived]').contains('No'); 82 }); 83 84 it('toggle bug updates', () => { 85 cy.get('[data-testid=update-bug-toggle]').click(); 86 // Cypress assertion should('not.be.checked') does not work for MUI Switch. 87 cy.get('[data-testid=update-bug-toggle]').should('not.have.class', 'Mui-checked'); 88 89 cy.get('[data-testid=update-bug-toggle]').click(); 90 cy.get('[data-testid=update-bug-toggle]').should('have.class', 'Mui-checked'); 91 }); 92 });