SPB Git forge

spb/uqo-chat

Public
14commits 1branches 0releases
1.4 MBsize
maindefault branch
17 days agolast push
Python 64.6% TypeScript 33.7% CSS 0.8%
1.2 KB · 24 lines typescript
Raw Blame History
1import { describe, expect, it } from 'vitest';2import { guardCurrency } from './math-guard';34describe('guardCurrency', () => {5  it('escapes French currency signs', () => {6    expect(guardCurrency('Recevoir 1 500 $ dans 5 ans équivaut à 1 120,89 $ aujourd’hui.')).toBe(7      'Recevoir 1 500 \\$ dans 5 ans équivaut à 1 120,89 \\$ aujourd’hui.',8    );9  });10  it('keeps inline math', () => {11    expect(guardCurrency('La formule $V = V_T + C_N - D$ structure tout.')).toBe('La formule $V = V_T + C_N - D$ structure tout.');12    expect(guardCurrency('Donc $D = 80\\,500$ et fini.')).toBe('Donc $D = 80\\,500$ et fini.');13  });14  it('keeps display math and code untouched', () => {15    const md = '$$V = 120\\,000 + (322\\,000 - 80\\,500)$$\n\n`prix = 5 $`\n\n```python\nx = "5 $"\n```';16    expect(guardCurrency(md)).toBe(md);17  });18  it('escapes an opener left unmatched at a paragraph break', () => {19    expect(guardCurrency('Coût : 322 000 $\n\nSuite $x$.')).toBe('Coût : 322 000 \\$\n\nSuite $x$.');20    // « 5$/m² et 7$/m² » (sans espace) reste ambigu : la règle Pandoc y voit une formule valide.21    expect(guardCurrency('prix de 5 $/m² et 7 $/m²')).toBe('prix de 5 \\$/m² et 7 \\$/m²');22  });23});24