From 793afa17eaea4a728e22dc57e004a778af52abdd Mon Sep 17 00:00:00 2001 From: Tetsuro Yoshikawa Date: Sun, 17 Apr 2022 16:31:46 +0900 Subject: [PATCH] fix: Double quotes are now escaped when they appear twice. --- src/Reporter/CSV/FileBuilder/CSV.ts | 2 +- src/Reporter/CSV/FileBuilder/__tests__/CSV.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Reporter/CSV/FileBuilder/CSV.ts b/src/Reporter/CSV/FileBuilder/CSV.ts index 43c67aa..35215ac 100644 --- a/src/Reporter/CSV/FileBuilder/CSV.ts +++ b/src/Reporter/CSV/FileBuilder/CSV.ts @@ -38,7 +38,7 @@ export class CSV implements FileBuilder { ), } ) - .map((row) => header.map((columnName) => (row[columnName] ?? '').replace('"', '""'))); + .map((row) => header.map((columnName) => (row[columnName] ?? '').replace(/"/g, '""'))); return [header, ...body]; } diff --git a/src/Reporter/CSV/FileBuilder/__tests__/CSV.test.ts b/src/Reporter/CSV/FileBuilder/__tests__/CSV.test.ts index cfbe947..4e20658 100644 --- a/src/Reporter/CSV/FileBuilder/__tests__/CSV.test.ts +++ b/src/Reporter/CSV/FileBuilder/__tests__/CSV.test.ts @@ -11,7 +11,7 @@ describe('CSV', () => { await css.build( metricsFactory.create( - '/tmp/foo.js|M ba"r 0 3|HB:3 M:90 CC:5 LL:2', + '/tmp/foo.js|M b"a"r 0 3|HB:3 M:90 CC:5 LL:2', '/tmp/foo.js|M baz 4 6|HB:4 M:30 CC:20 LL:1', '/tmp/foo.js|F 0 7|LL:3', '/tmp/bar.js|F 0 3|LL:2', @@ -21,7 +21,7 @@ describe('CSV', () => { expect(writerMock.write.mock.calls[0][1]) .toBe(`${byteOrderMark}"name","fullPath","HalsteadBugsDelivered","Maintainability","CognitiveComplexity","LogicalLineOfCode" -"/tmp/foo.js.dummyClass.ba""r","/tmp/foo.js","3","90","5","2" +"/tmp/foo.js.dummyClass.b""a""r","/tmp/foo.js","3","90","5","2" "/tmp/foo.js.dummyClass.baz","/tmp/foo.js","4","30","20","1" "/tmp/bar.js.bar","/tmp/bar.js","5","70","8",""`); });