UNPKG

yaml-language-server-parser

Version:

This is a maintained fork of YAML-AST-PARSER specifically for the YAML Language server.

64 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const YAML = require("../src/"); const util = require("./testUtil"); suite('YAML Syntax', () => { test('Allow astral characters', function () { const key = '𝑘𝑒𝑦'; const value = '𝑣𝑎𝑙𝑢𝑒'; const document = YAML.safeLoad(`${key}: ${value}`); chai_1.assert.deepEqual(document.mappings[0].key.value, key); chai_1.assert.deepEqual(document.mappings[0].value.value, value); }); test('Forbid non-printable characters', function () { testErrors('\x01', [{ line: 1, column: 0, message: 'the stream contains non-printable characters', isWarning: false }]); testErrors('\x7f', [{ line: 1, column: 0, message: 'the stream contains non-printable characters', isWarning: false }]); testErrors('\x9f', [{ line: 1, column: 0, message: 'the stream contains non-printable characters', isWarning: false }]); }); test('Forbid lone surrogates', function () { testErrors('\udc00\ud800', [{ line: 1, column: 0, message: 'the stream contains non-printable characters', isWarning: false }]); }); test('Allow emoji characters inside quoted scalars', () => { const key = '"📢 - hi - 👷"'; const document = YAML.safeLoad(key); chai_1.assert.deepEqual(document.value, '📢 - hi - 👷'); }); test('Allow non-printable characters inside quoted scalars', function () { const key = '"\x7f\x9f\udc00\ud800"'; const document = YAML.safeLoad(key); chai_1.assert.deepEqual(document.value, '\x7f\x9f\udc00\ud800'); }); test('Forbid control sequences inside quoted scalars', function () { testErrors('"\x03"', [{ line: 0, column: 2, message: 'expected valid JSON character', isWarning: false }]); }); }); function testErrors(input, expectedErrors) { util.testErrors(input, expectedErrors); } //# sourceMappingURL=characterSet.test.js.map