Skip to content

Commit 3d27c9e

Browse files
authored
Update assertions (#309)
* Update assertions in backend to include more info * Update assertions in config test
1 parent 52e084a commit 3d27c9e

File tree

2 files changed

+38
-36
lines changed

2 files changed

+38
-36
lines changed

lib/importer/src/config.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ describe("Configuration tests", () => {
152152
// * the new json object post-cbFunction
153153
// * the pluginConfig that was modified by cbFunction
154154
function withCurrent(rootFolder, pluginConfig, cbFunction, assertionsFunc) {
155-
assert(typeof (cbFunction) === 'function')
156-
assert(typeof (assertionsFunc) === 'function')
155+
assert(typeof (cbFunction) === 'function', "cbFunction must be a function");
156+
assert(typeof (assertionsFunc) === 'function', "assertionsFunc must be a function");
157157
process.env.KIT_PROJECT_DIR = rootFolder
158158
const original = JSON.parse(fs.readFileSync(pluginConfig.configPath, 'utf8'));
159159
cbFunction(pluginConfig)

lib/importer/src/dudk/backend.js

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ exports.SessionGetSheets = (sid) => {
7676
};
7777

7878
exports.SessionSetHeaderRange = (sid, range) => {
79-
assert(range != null)
80-
assert(range.sheet != null)
79+
assert(range != null, "Null range passed to SessionSetHeaderRange");
80+
assert(range.sheet != null, "Range with null sheet passed to SessionSetHeaderRange");
8181

8282
sessionStore.apply(sid, (s) => { s.headerRanges[range.sheet] = range; })
8383
};
@@ -88,6 +88,8 @@ exports.SessionGetHeaderRange = (sid, sheetName) => {
8888
};
8989

9090
exports.SessionSetFooterRange = (sid, range) => {
91+
assert(range != null, "Null range passed to SessionSetFooterRange");
92+
assert(range.sheet != null, "Range with null sheet passed to SessionSetFooterRange");
9193
sessionStore.apply(sid, (s) => { s.footerRanges[range.sheet] = range })
9294
};
9395

@@ -153,7 +155,7 @@ function getDimensions(sid) {
153155
// "sheetDimensions" mapping sheet names to objects with "rows" and "columns"
154156
// properties listing how many rows and columns there are.
155157
exports.SessionGetInputDimensions = (sid) => {
156-
assert(sessionStore.has(sid));
158+
assert(sessionStore.has(sid), `No such session ${sid} when getting input dimensions`);
157159
return getDimensions(sid);
158160
};
159161

@@ -222,7 +224,7 @@ exports.SessionGetSheetDimensions = (sid, sheetName) => {
222224
// footer range is also specified, it will stop the data range at the row above
223225
// the footer range.
224226
exports.SessionSuggestDataRange = (sid, headerRange, footerRange) => {
225-
assert(sessionStore.has(sid));
227+
assert(sessionStore.has(sid), `No such session ${sid} when suggesting data range`);
226228
const dimensions = getDimensions(sid);
227229

228230
if (headerRange) {
@@ -381,9 +383,9 @@ function cellsToSamples(row) {
381383

382384
// This function reserves the right to return fewer than requested rows.
383385
exports.SessionGetInputSampleRows = (sid, range, startCount, middleCount, endCount) => {
384-
assert(range != null)
385-
assert(sessionStore.has(sid));
386-
assert(sessionStore.get(sid).wb.Sheets[range.sheet]);
386+
assert(range != null, "Null range passed to SessionGetInputSampleRows");
387+
assert(sessionStore.has(sid), `No such session ${sid} when getting input sample rows`);
388+
assert(sessionStore.get(sid).wb.Sheets[range.sheet], `No such sheet ${range.sheet} in session ${sid} when getting input sample rows`);
387389
if (range.end.row < range.start.row || range.end.column < range.start.column) {
388390
// Range is empty
389391
return [[], [], []];
@@ -450,8 +452,8 @@ exports.SessionGetInputSampleRows = (sid, range, startCount, middleCount, endCou
450452
// formats, or an Array of possible formats for that type; and a field "full"
451453
// indicating if the column has no missing values.
452454
exports.SessionGuessTypes = (sid, range) => {
453-
assert(sessionStore.has(sid));
454-
assert(sessionStore.get(sid).wb.Sheets[range.sheet]);
455+
assert(sessionStore.has(sid), `No such session ${sid} when guessing types`);
456+
assert(sessionStore.get(sid).wb.Sheets[range.sheet], `No such sheet ${range.sheet} in session ${sid} when guessing types`);
455457
if(range.end.column < range.start.column) {
456458
// No columns in range
457459
return [];
@@ -569,10 +571,10 @@ exports.SessionSuggestFields = (sid, typeGuesses, domainModelFields) => {
569571
// and a .hasMore property that's a boolean set if the values array was
570572
// truncated to maxValues.
571573
exports.SessionGetInputValues = (sid, range, maxValues) => {
572-
assert(sessionStore.get(sid));
573-
assert(sessionStore.get(sid).wb.Sheets[range.sheet]);
574+
assert(sessionStore.get(sid), `No such session ${sid} when getting input values`);
575+
assert(sessionStore.get(sid).wb.Sheets[range.sheet], `No such sheet ${range.sheet} in session ${sid} when getting input values`);
574576
assert(range.end.row >= range.start.row, `End row (${range.end.row}) must be >= start row (${range.start.row}) to get input values`);
575-
assert(range.end.column >= range.start.column);
577+
assert(range.end.column >= range.start.column, `End column (${range.end.column}) must be >= start column (${range.start.column}) to get input values`);
576578

577579
const sheet = sessionStore.get(sid).wb.Sheets[range.sheet];
578580
const data = sheet["!data"];
@@ -630,8 +632,8 @@ exports.SessionGetInputValues = (sid, range, maxValues) => {
630632
}
631633

632634
exports.SessionDelete = (sid) => {
633-
assert(sessionStore.get(sid));
634-
sessionStore.delete(sid)
635+
assert(sessionStore.get(sid), `No such session ${sid} when deleting session`);
636+
sessionStore.delete(sid);
635637
dimensionsCache.delete(sid);
636638
}
637639

@@ -649,28 +651,28 @@ function validateMapping(range, mapping) {
649651

650652
// For now, mappings are just integer column indexes
651653

652-
assert(mapping.attributeMappings);
654+
assert(mapping.attributeMappings, "Mapping must include attributeMappings");
653655

654656
for (const attrSource of Object.values(mapping.attributeMappings)) {
655-
assert(Number.isInteger(attrSource));
656-
assert(attrSource >= 0);
657-
assert(attrSource < columnsInRange);
657+
assert(Number.isInteger(attrSource), "Attribute mapping must be an integer");
658+
assert(attrSource >= 0, "Attribute mapping must be >= 0");
659+
assert(attrSource < columnsInRange, "Attribute mapping must be < columnsInRange");
658660
}
659661

660662
// Output types are optional, we fall back to basicStringType if not specified
661663
if (mapping.attributeTypes) {
662664
// eslint-disable-next-line no-unused-vars
663665
for (const [attribute, attrType] of Object.entries(mapping.attributeTypes)) {
664-
assert(attrType instanceof Function);
666+
assert(attrType instanceof Function, "Attribute type must be a function");
665667
}
666668
}
667669
}
668670

669671
exports.SessionPerformMappingJob = (sid, range, mapping, includeErrorRow = false) => {
670-
assert(sessionStore.get(sid));
671-
assert(sessionStore.get(sid).wb.Sheets[range.sheet]);
672+
assert(sessionStore.get(sid), `No such session ${sid} when performing mapping job`);
673+
assert(sessionStore.get(sid).wb.Sheets[range.sheet], `No such sheet ${range.sheet} in session ${sid} when performing mapping job`);
672674
assert(range.end.row >= range.start.row, `End row (${range.end.row}) must be >= start row (${range.start.row}) when performing mapping`);
673-
assert(range.end.column >= range.start.column);
675+
assert(range.end.column >= range.start.column, `End column (${range.end.column}) must be >= start column (${range.start.column}) when performing mapping`);
674676

675677
const footerRange = this.SessionGetFooterRange(sid, range.sheet); // Ensure the footer range is loaded
676678

@@ -789,9 +791,9 @@ exports.SessionPerformMappingJob = (sid, range, mapping, includeErrorRow = false
789791

790792
// Returns number of records, number of rows with errors, number of rows with warnings
791793
exports.JobGetSummary = (sid, jid) => {
792-
assert(sessionStore.has(sid))
794+
assert(sessionStore.has(sid), `No such session ${sid} when getting job summary`);
793795
const session = sessionStore.get(sid)
794-
assert(session.jobs.has(jid));
796+
assert(session.jobs.has(jid), `No such job ${jid} when getting job summary`);
795797

796798
let job = session.jobs.get(jid);
797799

@@ -803,28 +805,28 @@ exports.JobGetSummary = (sid, jid) => {
803805
};
804806

805807
exports.JobGetWarnings = (sid, jid) => {
806-
assert(sessionStore.has(sid))
808+
assert(sessionStore.has(sid), `No such session ${sid} when getting job warnings`);
807809
const session = sessionStore.get(sid)
808-
assert(session.jobs.has(jid));
810+
assert(session.jobs.has(jid), `No such job ${jid} when getting job warnings`);
809811

810812
let job = session.jobs.get(jid);
811813

812814
return job.warnings;
813815
}
814816

815817
exports.JobGetErrors = (sid, jid) => {
816-
assert(sessionStore.has(sid))
818+
assert(sessionStore.has(sid), `No such session ${sid} when getting job errors`);
817819
const session = sessionStore.get(sid)
818-
assert(session.jobs.has(jid));
820+
assert(session.jobs.has(jid), `No such job ${jid} when getting job errors`);
819821

820822
let job = session.jobs.get(jid);
821823
return job.errors;
822824
}
823825

824826
exports.JobGetSampleRecords = (sid, jid, startCount, middleCount, endCount) => {
825-
assert(sessionStore.has(sid))
827+
assert(sessionStore.has(sid), `No such session ${sid} when getting job sample records`);
826828
const session = sessionStore.get(sid)
827-
assert(session.jobs.has(jid));
829+
assert(session.jobs.has(jid), `No such job ${jid} when getting job sample records`);
828830

829831
let records = session.jobs.get(jid).records;
830832

@@ -855,9 +857,9 @@ exports.JobGetSampleRecords = (sid, jid, startCount, middleCount, endCount) => {
855857
}
856858

857859
exports.JobGetRecords = (sid, jid, start, count) => {
858-
assert(sessionStore.has(sid))
860+
assert(sessionStore.has(sid), `No such session ${sid} when getting job records`);
859861
const session = sessionStore.get(sid)
860-
assert(session.jobs.has(jid));
862+
assert(session.jobs.has(jid), `No such job ${jid} when getting job records`);
861863

862864
const allRecords = session.jobs.get(jid).records;
863865

@@ -872,9 +874,9 @@ exports.JobGetRecords = (sid, jid, start, count) => {
872874
}
873875

874876
exports.JobDelete = (sid, jid) => {
875-
assert(sessionStore.has(sid))
877+
assert(sessionStore.has(sid), `No such session ${sid} when deleting job ${jid}`);
876878
const session = sessionStore.get(sid)
877-
assert(session.jobs.has(jid));
879+
assert(session.jobs.has(jid), `No such job ${jid} when deleting job`);
878880

879881
sessionStore.apply(sid, (s) => { s.jobs.delete(jid) })
880882
}

0 commit comments

Comments
 (0)