nullAssert.test.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { describe, it, expect, vi, beforeEach } from 'vitest'
  2. import { NullableAssert } from '~/services/asserts/NullableAssert'
  3. // Mock de vue-i18n
  4. vi.mock('vue-i18n', () => ({
  5. useI18n: () => ({
  6. t: vi.fn((key: string) => `__translated__${key}__`), // simulons une trad simple
  7. }),
  8. }))
  9. describe('NullableAssert', () => {
  10. it('supports retourne true uniquement pour "nullable"', () => {
  11. const nullAssert = new NullableAssert()
  12. expect(nullAssert.supports('nullable')).toBe(true)
  13. expect(nullAssert.supports('other')).toBe(false)
  14. })
  15. describe('createRule', () => {
  16. it('retourne true si criteria est true', () => {
  17. const nullAssert = new NullableAssert()
  18. const rule = nullAssert.createRule(true)
  19. expect(rule('joe')).toBe(true)
  20. })
  21. it('retourne true criteria est false et si value est n\'est pas null', () => {
  22. const nullAssert = new NullableAssert()
  23. const rule = nullAssert.createRule(false)
  24. expect(rule('joe')).toBe(true)
  25. })
  26. it('retourne un message si criteria est false et si value est null', () => {
  27. const nullAssert = new NullableAssert()
  28. const rule = nullAssert.createRule(false)
  29. expect(rule(null)).toBe('__translated__please_enter_a_value__')
  30. })
  31. })
  32. })