Skip to content

Commit 90dc90d

Browse files
committed
Moving header lowercasing into getCSVHeader function
1 parent c5d1184 commit 90dc90d

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

src/helpers/csvParsingUtils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function getCSVHeader(csvData) {
6464
bom: true,
6565
trim: true,
6666
to: 1,
67-
})[0];
67+
})[0].map((h) => h.toLowerCase());
6868
}
6969

7070
module.exports = {

src/helpers/csvValidator.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@ const logger = require('./logger');
33

44
// Validates csvData against the csvSchema
55
// Uses the csvFileIdentifier in logs for readability
6-
function validateCSV(csvFileIdentifier, csvSchema, csvData, header) {
6+
function validateCSV(csvFileIdentifier, csvSchema, csvData, headers) {
77
let isValid = true;
88

99
// Check headers
10-
const headers = header.map((h) => h.toLowerCase());
1110
const schemaDiff = _.difference(csvSchema.headers.map((h) => h.name.toLowerCase()), headers);
1211
const fileDiff = _.difference(headers, csvSchema.headers.map((h) => h.name.toLowerCase()));
1312

test/helpers/csvValidator.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,23 @@ describe('csvValidator', () => {
8787
});
8888

8989
test('data missing required value does not validate', () => {
90-
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_REQUIRED_VALUE, Object.keys(SIMPLE_DATA_MISSING_REQUIRED_VALUE[0]))).toBe(false);
90+
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_REQUIRED_VALUE, Object.keys(SIMPLE_DATA_MISSING_REQUIRED_VALUE[0]).map((h) => h.toLowerCase()))).toBe(false);
9191
});
9292

9393
test('data missing required header does not validate', () => {
94-
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_HEADER, Object.keys(SIMPLE_DATA_MISSING_HEADER[0]))).toBe(false);
94+
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_HEADER, Object.keys(SIMPLE_DATA_MISSING_HEADER[0]).map((h) => h.toLowerCase()))).toBe(false);
9595
});
9696

9797
test('data with erroneous column should still validate', () => {
98-
expect(validateCSV('', schema, SIMPLE_DATA_EXTRA_COLUMNS, Object.keys(SIMPLE_DATA_EXTRA_COLUMNS[0]))).toBe(true);
98+
expect(validateCSV('', schema, SIMPLE_DATA_EXTRA_COLUMNS, Object.keys(SIMPLE_DATA_EXTRA_COLUMNS[0]).map((h) => h.toLowerCase()))).toBe(true);
9999
});
100100

101101
test('data missing an optional column should still validate', () => {
102-
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_OPTIONAL_COLUMN, Object.keys(SIMPLE_DATA_MISSING_OPTIONAL_COLUMN[0]))).toBe(true);
102+
expect(validateCSV('', schema, SIMPLE_DATA_MISSING_OPTIONAL_COLUMN, Object.keys(SIMPLE_DATA_MISSING_OPTIONAL_COLUMN[0]).map((h) => h.toLowerCase()))).toBe(true);
103103
});
104104

105105
test('data with different casing in the column header should still validate', () => {
106-
expect(validateCSV('', schema, SIMPLE_DATA_DIFFERENT_CASING, Object.keys(SIMPLE_DATA_DIFFERENT_CASING[0]))).toBe(true);
106+
expect(validateCSV('', schema, SIMPLE_DATA_DIFFERENT_CASING, Object.keys(SIMPLE_DATA_DIFFERENT_CASING[0]).map((h) => h.toLowerCase()))).toBe(true);
107107
});
108108

109109
test('data with only the header but no rows should still validate', () => {

0 commit comments

Comments
 (0)