setting-sub-info-node.test.ts 949 B

123456789101112131415161718192021222324252627
  1. import { describe, it, expect } from 'vitest';
  2. import { AllSettingSchema } from '@/schemas/setting';
  3. import { AllSetting } from '@/models/setting';
  4. describe('subInfoNode settings', () => {
  5. it('defaults on AllSetting', () => {
  6. const s = new AllSetting();
  7. expect(s.subInfoNodeEnable).toBe(false);
  8. expect(s.subExpiredTemplate).toBe('⛔ {{EMAIL}} | Expired: {{EXPIRE_DATE}}');
  9. expect(s.subTrafficDepletedTemplate).toBe(
  10. '🚫 {{EMAIL}} | Traffic Depleted | {{TRAFFIC_USED}}/{{TRAFFIC_TOTAL}}',
  11. );
  12. });
  13. it('accepts valid values in the settings schema', () => {
  14. const r = AllSettingSchema.safeParse({
  15. subInfoNodeEnable: true,
  16. subExpiredTemplate: 'custom expired',
  17. subTrafficDepletedTemplate: 'custom depleted',
  18. });
  19. expect(r.success).toBe(true);
  20. });
  21. it('rejects invalid types', () => {
  22. expect(AllSettingSchema.safeParse({ subInfoNodeEnable: 'true' }).success).toBe(false);
  23. });
  24. });