Auth.constants.test.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { describe, expect, it } from 'vitest'
  2. import { urlRegex } from '@/components/interfaces/Auth/Auth.constants'
  3. describe('Auth.constants: urlRegex', () => {
  4. it('should match valid URLs', () => {
  5. const validUrls = [
  6. 'http://domain.com',
  7. 'https://supabase.io',
  8. 'https://new-domain-vercel.com',
  9. 'www.test-domain.com',
  10. 'exp://exp.host/some-app',
  11. 'exp://exp.host/some-app?release-channel=default',
  12. 'https://supabase.com/dashboard',
  13. 'http://localhost:3000',
  14. 'https://supabase.com?name=test',
  15. 'https://supabase.com?name=test&description=hello&page=2',
  16. 'https://briven*.com',
  17. 'https://supabase.com/*',
  18. 'https://new-*-domain.com/*',
  19. 'https://new-*-domain.com/*/*/*',
  20. 'https://sub-*-domain.new-*-domain.com/*/*/*',
  21. ]
  22. validUrls.forEach((url) => {
  23. expect(urlRegex().test(url)).toBe(true)
  24. })
  25. })
  26. it('should not match invalid URLs', () => {
  27. const invalidUrls = ['briven', 'mailto:test@gmail.com', 'hello world.com', 'email@domain.com']
  28. const failingInvalidUrls = invalidUrls.filter((url) => urlRegex().test(url))
  29. if (failingInvalidUrls.length > 0) {
  30. console.log('Failing invalid URLs:', failingInvalidUrls)
  31. }
  32. invalidUrls.forEach((url) => {
  33. expect(urlRegex().test(url)).toBe(false)
  34. })
  35. })
  36. it('should not match simple domain URLs when excludeSimpleDomains is true', () => {
  37. const simpleDomainUrl = 'smtp-pulse.com'
  38. expect(urlRegex({ excludeSimpleDomains: true }).test(simpleDomainUrl)).toBe(false)
  39. })
  40. it('should match simple domain URLs when excludeSimpleDomains is false', () => {
  41. const simpleDomainUrl = 'smtp-pulse.com'
  42. expect(urlRegex({ excludeSimpleDomains: false }).test(simpleDomainUrl)).toBe(true)
  43. })
  44. })