fix: SonarQube - refactor ClientsController (21->20 methodes), AdvertController (constante + syncPayment)
ClientsController : - Extraction dispatchPostAction() via match (show: 5->2 returns) - Inline sendWelcomeEmail (3 call sites) et indexInMeilisearch (2 call sites) - Fusion initStripeCustomer -> setupStripeCustomer - Rename finalizeStripeCustomer -> finalizeStripeMetadata - Catch vide geocodeIfNeeded rempli avec commentaire - 21 -> 20 methodes (limite autorisee) AdvertController : - Constante MSG_NOT_FOUND pour literal duplique 7 fois - syncPayment refactore (CC 19->8) : extraction processSyncPayment, resolveMethodLabel, ensureAdvertPayment, ensureFacture JS SonarQube : - app.js : removeAttribute -> delete dataset, ternaires -> payBtnLabel(), window -> globalThis, parseFloat -> Number.parseFloat, catch vides -> console.debug - app.scss : contraste ameliore (white -> #f5f5f5) - entreprise-search.js : && -> optional chaining (?., ??) - app.test.js : extraction cleanupListeners/resetMocks/loadApp (CC 17->12) PHP CS Fixer : 3 fichiers corriges PHPStan level 6 : 0 erreurs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,37 +37,36 @@ document.addEventListener = (type, listener, options) => {
|
||||
return originalAddEventListener(type, listener, options)
|
||||
}
|
||||
|
||||
const cleanupListeners = () => {
|
||||
domContentLoadedListeners.forEach(listener => {
|
||||
originalRemoveEventListener('DOMContentLoaded', listener)
|
||||
})
|
||||
domContentLoadedListeners = []
|
||||
}
|
||||
|
||||
const resetMocks = () => {
|
||||
document.body.innerHTML = ''
|
||||
localStorageMock.clear()
|
||||
vi.restoreAllMocks()
|
||||
localStorageMock.getItem.mockImplementation(() => null)
|
||||
}
|
||||
|
||||
const loadApp = async () => {
|
||||
vi.resetModules()
|
||||
vi.doMock('../../assets/modules/entreprise-search.js', () => ({
|
||||
initEntrepriseSearch: vi.fn(),
|
||||
}))
|
||||
vi.doMock('../../assets/app.scss', () => ({}))
|
||||
await import('../../assets/app.js')
|
||||
document.dispatchEvent(new Event('DOMContentLoaded'))
|
||||
}
|
||||
|
||||
describe('app.js DOMContentLoaded', () => {
|
||||
beforeEach(() => {
|
||||
// Remove all previously registered DOMContentLoaded listeners to prevent accumulation
|
||||
domContentLoadedListeners.forEach(listener => {
|
||||
originalRemoveEventListener('DOMContentLoaded', listener)
|
||||
})
|
||||
domContentLoadedListeners = []
|
||||
|
||||
document.body.innerHTML = ''
|
||||
localStorageMock.clear()
|
||||
vi.restoreAllMocks()
|
||||
// Re-apply localStorage mock after restoreAllMocks
|
||||
localStorageMock.getItem.mockImplementation((key) => {
|
||||
// Use internal store - reimplemented per test via setItem
|
||||
return null
|
||||
})
|
||||
cleanupListeners()
|
||||
resetMocks()
|
||||
})
|
||||
|
||||
const loadApp = async () => {
|
||||
vi.resetModules()
|
||||
|
||||
// Re-mock the modules before re-import
|
||||
vi.doMock('../../assets/modules/entreprise-search.js', () => ({
|
||||
initEntrepriseSearch: vi.fn(),
|
||||
}))
|
||||
vi.doMock('../../assets/app.scss', () => ({}))
|
||||
|
||||
await import('../../assets/app.js')
|
||||
document.dispatchEvent(new Event('DOMContentLoaded'))
|
||||
}
|
||||
|
||||
describe('Member/Admin checkboxes', () => {
|
||||
beforeEach(() => {
|
||||
document.body.innerHTML = `
|
||||
|
||||
Reference in New Issue
Block a user