5180 fichiers 38.5 Mo 0 téléchargements 106 vues mis à jour il y a 4 heures ui
nitro-v36-with-renderer-v36 / src / json / JsonDocumentParser.test.ts
JsonDocumentParser.test.ts 1.2 Ko Télécharger le fichier
import { describe, expect, it } from 'vitest';
import { parseJsonDocument } from './JsonDocumentParser';

describe('parseJsonDocument', () =>
{
    it('parses strict JSON in every mode', () =>
    {
        for(const mode of [ 'legacy', 'jsonc', 'auto' ] as const)
        {
            expect(parseJsonDocument('{"value":1}', mode)).toEqual({ value: 1 });
        }
    });

    it('parses comments and trailing commas in jsonc and auto modes', () =>
    {
        const source = '{ /* comment */ "value": 1, }';

        expect(parseJsonDocument(source, 'jsonc')).toEqual({ value: 1 });
        expect(parseJsonDocument(source, 'auto')).toEqual({ value: 1 });
    });

    it('rejects comments and trailing commas in legacy mode', () =>
    {
        expect(() => parseJsonDocument('{ "value": 1, }', 'legacy', 'config.json'))
            .toThrow(/strict JSON/);
    });

    it.each([
        "{ 'value': 1 }",
        '{ value: 1 }',
        '{ "value": 0x10 }',
        '{ "value": Infinity }'
    ])('rejects JSON5-only syntax: %s', source =>
    {
        expect(() => parseJsonDocument(source, 'jsonc', 'config.jsonc')).toThrow(/JSONC/);
        expect(() => parseJsonDocument(source, 'auto', 'config.json')).toThrow(/JSON\/JSONC/);
    });
});
15Sujets
1Dépôts
20Membres
7En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser