diff --git a/lib/internal/test_runner/snapshot.js b/lib/internal/test_runner/snapshot.js index 16a994c02a6..a2ab85239d7 100644 --- a/lib/internal/test_runner/snapshot.js +++ b/lib/internal/test_runner/snapshot.js @@ -146,7 +146,9 @@ class SnapshotManager { ); } - this.snapshots = context.exports; + for (const key in context.exports) { + this.snapshots[key] = templateEscape(context.exports[key]); + } this.loaded = true; } catch (err) { let msg = `Cannot read snapshot file '${this.snapshotFile}.'`; diff --git a/test/fixtures/test-runner/snapshots/unit.js b/test/fixtures/test-runner/snapshots/unit.js index 0718314239e..889b47f379a 100644 --- a/test/fixtures/test-runner/snapshots/unit.js +++ b/test/fixtures/test-runner/snapshots/unit.js @@ -22,3 +22,7 @@ test('`${foo}`', async (t) => { const options = { serializers: [() => { return '***'; }]}; t.assert.snapshot('snapshotted string', options); }); + +test('escapes in `\\${foo}`\n', async (t) => { + t.assert.snapshot('`\\${foo}`\n'); +}); diff --git a/test/parallel/test-runner-snapshot-tests.js b/test/parallel/test-runner-snapshot-tests.js index ae4130190d6..d3abf356821 100644 --- a/test/parallel/test-runner-snapshot-tests.js +++ b/test/parallel/test-runner-snapshot-tests.js @@ -296,9 +296,9 @@ test('t.assert.snapshot()', async (t) => { t.assert.strictEqual(child.code, 1); t.assert.strictEqual(child.signal, null); - t.assert.match(child.stdout, /# tests 3/); + t.assert.match(child.stdout, /# tests 4/); t.assert.match(child.stdout, /# pass 0/); - t.assert.match(child.stdout, /# fail 3/); + t.assert.match(child.stdout, /# fail 4/); t.assert.match(child.stdout, /Missing snapshots/); }); @@ -311,8 +311,8 @@ test('t.assert.snapshot()', async (t) => { t.assert.strictEqual(child.code, 0); t.assert.strictEqual(child.signal, null); - t.assert.match(child.stdout, /tests 3/); - t.assert.match(child.stdout, /pass 3/); + t.assert.match(child.stdout, /tests 4/); + t.assert.match(child.stdout, /pass 4/); t.assert.match(child.stdout, /fail 0/); }); @@ -325,8 +325,8 @@ test('t.assert.snapshot()', async (t) => { t.assert.strictEqual(child.code, 0); t.assert.strictEqual(child.signal, null); - t.assert.match(child.stdout, /tests 3/); - t.assert.match(child.stdout, /pass 3/); + t.assert.match(child.stdout, /tests 4/); + t.assert.match(child.stdout, /pass 4/); t.assert.match(child.stdout, /fail 0/); }); });