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(() => {
|
beforeEach(() => {
|
||||||
cy.visit('/login')
|
cy.visit('/login')
|
||||||
|
|
||||||
cy.wait(1000)
|
cy.wait(3000)
|
||||||
|
|
||||||
cy.get('input[type="email"]').type('test@example.com')
|
cy.get('input[type="email"]').type('test@example.com')
|
||||||
cy.get('input[type="password"]').type('password')
|
cy.get('input[type="password"]').type('password')
|
||||||
@@ -101,4 +101,83 @@ describe('Admin Student CRUD', () => {
|
|||||||
expect(count).to.be.eq(initialRowCount - 1)
|
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