You've already forked isop-mirror
feat: add e2e test for student data editing for admins
This commit is contained in:
@@ -2,7 +2,7 @@ describe('Admin Student CRUD', () => {
|
||||
beforeEach(() => {
|
||||
cy.visit('/login')
|
||||
|
||||
cy.wait(1000)
|
||||
cy.wait(3000)
|
||||
|
||||
cy.get('input[type="email"]').type('test@example.com')
|
||||
cy.get('input[type="password"]').type('password')
|
||||
@@ -101,4 +101,83 @@ describe('Admin Student CRUD', () => {
|
||||
expect(count).to.be.eq(initialRowCount - 1)
|
||||
})
|
||||
})
|
||||
|
||||
it('should be able to edit a student', () => {
|
||||
// Náhodné sety
|
||||
const firstNames = ['Ján', 'Peter', 'Martin', 'Tomáš', 'Michal', 'Anna', 'Mária', 'Eva', 'Katarína', 'Lucia', 'Adam', 'Cypress']
|
||||
const lastNames = ['Novák', 'Kováč', 'Horváth', 'Varga', 'Molnár', 'Tóth', 'Nagy', 'Lukáč', 'Szabó', 'Kiss', 'Jablko', 'Tester']
|
||||
|
||||
// Výber náhodného študenta
|
||||
cy.get('table tbody tr').then($rows => {
|
||||
const randomIndex = Math.floor(Math.random() * $rows.length)
|
||||
const randomRow = $rows.eq(randomIndex)
|
||||
|
||||
cy.wrap(randomIndex).as('selectedIndex')
|
||||
cy.wrap(randomRow).as('selectedRow')
|
||||
})
|
||||
|
||||
// Kliknutie na "Editovať"
|
||||
cy.get('@selectedRow').within(() => {
|
||||
cy.contains('Editovať').click()
|
||||
})
|
||||
|
||||
// Generovanie náhodného mena
|
||||
|
||||
const randomFirstName = firstNames[Math.floor(Math.random() * firstNames.length)]
|
||||
const randomLastName = lastNames[Math.floor(Math.random() * lastNames.length)]
|
||||
const randomStudentEmail = `cypress.test.${Date.now()}@student.ukf.sk`
|
||||
const randomPhone = `+421${Math.floor(Math.random() * 900000000 + 100000000)}`
|
||||
const randomPersonalEmail = `cypress.test.${Date.now()}@gmail.com`
|
||||
const randomHouseNumber = Math.floor(Math.random() * 200 + 1)
|
||||
const randomAddress = `Hlavná ${randomHouseNumber}/1, Komárno, 946 01`
|
||||
|
||||
// Kontrola cesty
|
||||
cy.url().should('include', '/dashboard/admin/students/edit/')
|
||||
|
||||
// Zmena mena
|
||||
cy.get('#input-v-1-1').clear().type(randomFirstName) // meno
|
||||
cy.get('#input-v-1-4').clear().type(randomLastName) // priezvisko
|
||||
|
||||
// Zmena e-mailu
|
||||
cy.get('#input-v-1-7').clear().type(randomStudentEmail)
|
||||
|
||||
// Zmena telefónu
|
||||
cy.get('#input-v-1-10').clear().type(randomPhone)
|
||||
|
||||
// Zmena študijného programu
|
||||
cy.get('#input-v-1-13').clear().type('aplikovaná informatika')
|
||||
|
||||
// Zmena osobného e-mailu
|
||||
cy.get('#input-v-1-16').clear().type(randomPersonalEmail)
|
||||
|
||||
// Zmena adresy
|
||||
cy.get('#input-v-1-19').clear().type(randomAddress)
|
||||
|
||||
// Uložiť zmeny
|
||||
cy.contains('Uložiť zmeny').click()
|
||||
|
||||
// Počkanie na uloženie
|
||||
cy.wait(2000)
|
||||
cy.url().should('include', '/dashboard/admin/students')
|
||||
|
||||
// Overenie zmien v tabuľke
|
||||
cy.get('@selectedIndex').then((index) => {
|
||||
cy.get('table tbody tr').eq(index as number).within(() => {
|
||||
const expectedValues = [
|
||||
`${randomFirstName} ${randomLastName}`,
|
||||
randomStudentEmail,
|
||||
randomPhone,
|
||||
'aplikovaná informatika',
|
||||
randomPersonalEmail,
|
||||
randomAddress
|
||||
]
|
||||
|
||||
cy.get('td').then($cells => {
|
||||
expectedValues.forEach((expectedValue, i) => {
|
||||
expect($cells.eq(i).text().trim()).to.equal(expectedValue)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user