From 3dd1055cbcd0ff861dd941a397a2589f41c5137b Mon Sep 17 00:00:00 2001 From: julianxcarter Date: Wed, 14 Apr 2021 13:59:45 -0400 Subject: [PATCH 1/2] Example csv with BOM + failing test case --- test/modules/CSVModule.test.js | 6 ++++++ test/modules/fixtures/example-csv-bom.csv | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 test/modules/fixtures/example-csv-bom.csv diff --git a/test/modules/CSVModule.test.js b/test/modules/CSVModule.test.js index b0757fa3..342ff655 100644 --- a/test/modules/CSVModule.test.js +++ b/test/modules/CSVModule.test.js @@ -4,12 +4,18 @@ const exampleResponse = require('./fixtures/csv-response.json'); const INVALID_MRN = 'INVALID MRN'; const csvModule = new CSVModule(path.join(__dirname, './fixtures/example-csv.csv')); +const csvModuleWithBOMs = new CSVModule(path.join(__dirname, './fixtures/example-csv-bom.csv')); test('Reads data from CSV', async () => { const data = await csvModule.get('mrn', 'example-mrn-1'); expect(data).toEqual(exampleResponse); }); +test('Reads data from CSV with a Byte Order Mark', async () => { + const data = await csvModuleWithBOMs.get('mrn', 'example-mrn-1'); + expect(data).toEqual(exampleResponse); +}); + test('Returns multiple rows', async () => { const data = await csvModule.get('mrn', 'example-mrn-2'); expect(data).toHaveLength(2); diff --git a/test/modules/fixtures/example-csv-bom.csv b/test/modules/fixtures/example-csv-bom.csv new file mode 100644 index 00000000..b0e0a6ab --- /dev/null +++ b/test/modules/fixtures/example-csv-bom.csv @@ -0,0 +1,4 @@ +mrn,trialSubjectID,enrollmentStatus,trialResearchID,trialStatus,dateRecorded +example-mrn-1,subjectId-1,status-1,researchId-1,trialStatus-1,2020-01-10 +example-mrn-2,subjectId-2,status-2,researchId-2,trialStatus-2,2020-01-10 +example-mrn-2,subjectId-3,status-3,researchId-3,trialStatus-3,2020-06-10 From 0e3d63a767ef504ede5e5bcc3089938beaa573c5 Mon Sep 17 00:00:00 2001 From: julianxcarter Date: Wed, 14 Apr 2021 14:00:46 -0400 Subject: [PATCH 2/2] Bom flag enabled --- src/modules/CSVModule.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/CSVModule.js b/src/modules/CSVModule.js index 983223ee..faee5b60 100644 --- a/src/modules/CSVModule.js +++ b/src/modules/CSVModule.js @@ -5,7 +5,7 @@ const logger = require('../helpers/logger'); class CSVModule { constructor(csvFilePath) { - this.data = parse(fs.readFileSync(csvFilePath), { columns: true }); + this.data = parse(fs.readFileSync(csvFilePath), { columns: true, bom: true }); } async get(key, value, fromDate, toDate) {