FilterTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. declare(strict_types=1);
  3. use App\Services\Filter;
  4. beforeEach(function () {
  5. $this->originalEnv = $_ENV;
  6. });
  7. afterEach(function () {
  8. $_ENV = $this->originalEnv;
  9. });
  10. it('allows email when filter is set to whitelist mode and email domain is in list', function () {
  11. $_ENV['mail_filter'] = 1;
  12. $_ENV['mail_filter_list'] = ['example.com'];
  13. expect(Filter::checkEmailFilter('[email protected]'))->toBeTrue();
  14. });
  15. it('blocks email when filter is set to blacklist mode and email domain is in list', function () {
  16. $_ENV['mail_filter'] = 2;
  17. $_ENV['mail_filter_list'] = ['example.com'];
  18. expect(Filter::checkEmailFilter('[email protected]'))->toBeFalse();
  19. });
  20. it('blocks invalid email addresses', function () {
  21. $_ENV['mail_filter'] = 2;
  22. $_ENV['mail_filter_list'] = ['example.com'];
  23. expect(Filter::checkEmailFilter('invalid_email'))->toBeFalse();
  24. });
  25. it('allows any email when filter is disabled', function () {
  26. $_ENV['mail_filter'] = 0;
  27. expect(Filter::checkEmailFilter('[email protected]'))->toBeTrue();
  28. });
  29. it('blocks email when filter is set to whitelist mode and email domain is not in list', function () {
  30. $_ENV['mail_filter'] = 1;
  31. $_ENV['mail_filter_list'] = ['example.com'];
  32. expect(Filter::checkEmailFilter('[email protected]'))->toBeFalse();
  33. });
  34. it('allows email when filter is set to blacklist mode and email domain is not in list', function () {
  35. $_ENV['mail_filter'] = 2;
  36. $_ENV['mail_filter_list'] = ['example.com'];
  37. expect(Filter::checkEmailFilter('[email protected]'))->toBeTrue();
  38. });