Files
e-ticket/tests/js/admin.test.js
Serreau Jovann 9bcb41306b Add conformite page, SonarQube badge proxy, coverage fixes, and code quality
- Add /conformite page: PSD2/3DS/Stripe, SonarQube badges, CI/CD, security
- Create SonarBadgeController proxy to serve SonarQube badges without exposing token
- Store SonarQube badge token in ansible/vault.yml instead of env files
- Add Meilisearch coverage tests: search with results, search error, sync, delete
- Fix MeilisearchService delete catch block with comment
- Fix ESLint: use globalThis.confirm instead of window.confirm
- Fix accessibility: add for/id attributes to buyer creation form labels
- Add conformite link to site footer
- Add SonarBadgeControllerTest and LegalControllerTest for /conformite

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:25:04 +01:00

68 lines
2.1 KiB
JavaScript

import { describe, it, expect, vi, beforeEach } from 'vitest'
describe('admin.js', () => {
beforeEach(() => {
document.body.innerHTML = ''
vi.restoreAllMocks()
globalThis.confirm = vi.fn()
})
it('prevents form submit when confirm is cancelled', async () => {
document.body.innerHTML = `
<form data-confirm="Are you sure?">
<button type="submit">Delete</button>
</form>
`
globalThis.confirm.mockReturnValue(false)
await import('../../assets/admin.js')
document.dispatchEvent(new Event('DOMContentLoaded'))
const form = document.querySelector('form')
const event = new Event('submit', { cancelable: true })
form.dispatchEvent(event)
expect(globalThis.confirm).toHaveBeenCalledWith('Are you sure?')
expect(event.defaultPrevented).toBe(true)
})
it('allows form submit when confirm is accepted', async () => {
document.body.innerHTML = `
<form data-confirm="Are you sure?">
<button type="submit">Delete</button>
</form>
`
globalThis.confirm.mockReturnValue(true)
await import('../../assets/admin.js')
document.dispatchEvent(new Event('DOMContentLoaded'))
const form = document.querySelector('form')
const event = new Event('submit', { cancelable: true })
form.dispatchEvent(event)
expect(globalThis.confirm).toHaveBeenCalledWith('Are you sure?')
expect(event.defaultPrevented).toBe(false)
})
it('does nothing on forms without data-confirm', async () => {
document.body.innerHTML = `
<form>
<button type="submit">Submit</button>
</form>
`
await import('../../assets/admin.js')
document.dispatchEvent(new Event('DOMContentLoaded'))
const form = document.querySelector('form')
const event = new Event('submit', { cancelable: true })
form.dispatchEvent(event)
expect(globalThis.confirm).not.toHaveBeenCalled()
expect(event.defaultPrevented).toBe(false)
})
})