From 06eaa69c63aff9662987cd2d2a5054f9c57e125d Mon Sep 17 00:00:00 2001 From: Yann Savary Date: Fri, 20 Nov 2020 20:31:31 +0100 Subject: [PATCH] Add tests for https://github.com/nodeca/js-yaml/issues/587 --- test/issues/0369.js | 3 +-- test/issues/0587.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test/issues/0587.js diff --git a/test/issues/0369.js b/test/issues/0369.js index f96baac1..d1e20d83 100644 --- a/test/issues/0369.js +++ b/test/issues/0369.js @@ -5,7 +5,6 @@ var assert = require('assert'); var yaml = require('../../'); -test('should dump astrals as codepoint', function () { - assert.deepEqual(yaml.safeDump('😀'), '"\\U0001F600"\n'); +test('should load astrals as codepoint', function () { assert.deepEqual(yaml.safeLoad('"\\U0001F600"'), '😀'); }); diff --git a/test/issues/0587.js b/test/issues/0587.js new file mode 100644 index 00000000..c033973a --- /dev/null +++ b/test/issues/0587.js @@ -0,0 +1,20 @@ +'use strict'; + + +var assert = require('assert'); +var yaml = require('../../'); + + +suite('Should not escape emojis', function () { + test('plain', function () { + assert.strictEqual(yaml.safeDump('😀'), '😀\n'); + }); + + test('escape \\ and " in double-quoted', function () { + assert.strictEqual(yaml.safeDump('\u0007 😀 escape\\ escaper"'), '"\\a 😀 escape\\\\ escaper\\""\n'); + }); + + test('escape non-printables', function () { + assert.strictEqual(yaml.safeDump('a😀\nb\u0001c'), '"a😀\\nb\\x01c"\n'); + }); +});