remark-variables.test.ts 1013 B

1234567891011121314151617181920212223242526272829303132
  1. import { describe, it, expect } from 'vitest';
  2. import {
  3. REMARK_VARIABLES,
  4. hasRemarkTokens,
  5. previewRemark,
  6. wrapToken,
  7. } from '@/lib/remark/remarkVariables';
  8. describe('remark variables', () => {
  9. it('wrapToken / hasRemarkTokens', () => {
  10. expect(wrapToken('EMAIL')).toBe('{{EMAIL}}');
  11. expect(hasRemarkTokens('hi {{EMAIL}}')).toBe(true);
  12. expect(hasRemarkTokens('plain')).toBe(false);
  13. });
  14. it('previewRemark substitutes known tokens and drops unknown', () => {
  15. expect(previewRemark('plain text')).toBe('plain text');
  16. expect(previewRemark('{{EMAIL}}')).toBe('john');
  17. expect(previewRemark('{{EMAIL}} · {{TRAFFIC_LEFT}} · {{DAYS_LEFT}}d')).toBe(
  18. 'john · 41.60GB · 12d',
  19. );
  20. expect(previewRemark('{{NOT_A_TOKEN}}')).toBe('');
  21. });
  22. it('every catalog token previews to its own sample', () => {
  23. for (const v of REMARK_VARIABLES) {
  24. expect(v.sample.length).toBeGreaterThan(0);
  25. expect(previewRemark(wrapToken(v.token))).toBe(v.sample);
  26. }
  27. });
  28. });