import { describe, it, expect, vi, beforeEach } from 'vitest' import { NullableAssert } from '~/services/asserts/NullableAssert' // Mock de vue-i18n vi.mock('vue-i18n', () => ({ useI18n: () => ({ t: vi.fn((key: string) => `__translated__${key}__`), // simulons une trad simple }), })) describe('NullableAssert', () => { it('supports retourne true uniquement pour "nullable"', () => { const nullAssert = new NullableAssert() expect(nullAssert.supports('nullable')).toBe(true) expect(nullAssert.supports('other')).toBe(false) }) describe('createRule', () => { it('retourne true si criteria est true', () => { const nullAssert = new NullableAssert() const rule = nullAssert.createRule(true) expect(rule('joe')).toBe(true) }) it('retourne true criteria est false et si value est n\'est pas null', () => { const nullAssert = new NullableAssert() const rule = nullAssert.createRule(false) expect(rule('joe')).toBe(true) }) it('retourne un message si criteria est false et si value est null', () => { const nullAssert = new NullableAssert() const rule = nullAssert.createRule(false) expect(rule(null)).toBe('__translated__please_enter_a_value__') }) }) })