mahula 78a8c68800
feat(other): initial end-to-end tests working in github ci and locally (#402)
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-10-09 21:59:06 +02:00

45 lines
1.4 KiB
TypeScript

/// <reference types="cypress" />
import './commands'
// for screenshot embedding
import addContext from 'mochawesome/addContext'
// Global exception handler
Cypress.on('uncaught:exception', (err) => {
// eslint-disable-next-line no-console
console.log('Uncaught exception:', err.message)
return false
})
// Add screenshots of failed tests to mochawesome report
Cypress.on('test:after:run', (test, runnable) => {
if (test.state === 'failed') {
const adjustedSpecPath = Cypress.spec.relative.replace(/^e2e\//, '')
// Build the full test hierarchy title like Cypress does for screenshot naming
const titles: string[] = []
let current = runnable
while (current && current.parent) {
if (current.title) {
titles.unshift(current.title)
}
current = current.parent
}
const fullTitle = titles.join(' -- ').replace(/:/g, '')
const screenshot = `screenshots/${adjustedSpecPath}/${fullTitle} (failed).png`
addContext({ test }, screenshot)
// Also add any retry screenshots if they exist
const screenshot2 = `screenshots/${adjustedSpecPath}/${fullTitle} (failed) (attempt 2).png`
const screenshot3 = `screenshots/${adjustedSpecPath}/${fullTitle} (failed) (attempt 3).png`
// Add retry screenshots (mochawesome will handle non-existent files gracefully)
addContext({ test }, screenshot2)
addContext({ test }, screenshot3)
}
})