@naturalcycles/db-lib
Advanced tools
Comparing version 8.21.2 to 8.21.3
@@ -0,1 +1,8 @@ | ||
## [8.21.3](https://github.com/NaturalCycles/db-lib/compare/v8.21.2...v8.21.3) (2021-10-18) | ||
### Bug Fixes | ||
* null/undefined tests, fix FileDB mutation ([b948d2f](https://github.com/NaturalCycles/db-lib/commit/b948d2ff11f0e0c7b758a8b65c831ebbbb221925)) | ||
## [8.21.2](https://github.com/NaturalCycles/db-lib/compare/v8.21.1...v8.21.2) (2021-10-18) | ||
@@ -2,0 +9,0 @@ |
@@ -39,5 +39,2 @@ import { JsonSchemaRootObject } from '@naturalcycles/js-lib'; | ||
saveFiles<ROW extends ObjectWithId>(ops: DBSaveBatchOperation<ROW>[]): Promise<void>; | ||
/** | ||
* Mutates | ||
*/ | ||
sortRows<ROW>(rows: ROW[]): ROW[]; | ||
@@ -44,0 +41,0 @@ private logStarted; |
@@ -172,7 +172,4 @@ "use strict"; | ||
} | ||
/** | ||
* Mutates | ||
*/ | ||
sortRows(rows) { | ||
rows.forEach(r => (0, js_lib_1._filterUndefinedValues)(r, true)); | ||
rows = rows.map(r => (0, js_lib_1._filterUndefinedValues)(r)); | ||
if (this.cfg.sortOnSave) { | ||
@@ -179,0 +176,0 @@ (0, js_lib_1._sortBy)(rows, r => r[this.cfg.sortOnSave.name], true); |
@@ -81,2 +81,3 @@ "use strict"; | ||
}; | ||
// deepFreeze(item3) // no, Dao is expected to mutate object to add id, created, updated | ||
await dao.save(item3); | ||
@@ -86,2 +87,4 @@ const item3Loaded = await dao.requireById(item3.id); | ||
expect(item3Loaded.k2).toBe(null); | ||
expect(Object.keys(item3)).toContain('k2'); | ||
expect(item3.k2).toBeNull(); | ||
}); | ||
@@ -94,7 +97,13 @@ } | ||
}; | ||
// deepFreeze(item3) // no, Dao is expected to mutate object to add id, created, updated | ||
const expected = { ...item3 }; | ||
delete expected.k2; | ||
await dao.save(item3); | ||
expected.updated = item3.updated; // as it's mutated | ||
const item3Loaded = await dao.requireById(item3.id); | ||
(0, dbTest_1.expectMatch)([item3], [item3Loaded], quirks); | ||
(0, dbTest_1.expectMatch)([expected], [item3Loaded], quirks); | ||
expect(item3Loaded.k2).toBe(undefined); | ||
expect(Object.keys(item3Loaded)).not.toContain('k2'); | ||
expect(Object.keys(item3)).toContain('k2'); | ||
expect(item3.k2).toBeUndefined(); | ||
}); | ||
@@ -101,0 +110,0 @@ test('saveBatch test items', async () => { |
@@ -67,2 +67,3 @@ "use strict"; | ||
}; | ||
(0, test_util_1.deepFreeze)(item3); | ||
await db.saveBatch(test_model_1.TEST_TABLE, [item3]); | ||
@@ -79,5 +80,8 @@ const item3Loaded = (await db.getByIds(test_model_1.TEST_TABLE, [item3.id]))[0]; | ||
}; | ||
(0, test_util_1.deepFreeze)(item3); | ||
const expected = { ...item3 }; | ||
delete expected.k2; | ||
await db.saveBatch(test_model_1.TEST_TABLE, [item3]); | ||
const item3Loaded = (await db.getByIds(test_model_1.TEST_TABLE, [item3.id]))[0]; | ||
expectMatch([item3], [item3Loaded], quirks); | ||
expectMatch([expected], [item3Loaded], quirks); | ||
expect(item3Loaded.k2).toBe(undefined); | ||
@@ -84,0 +88,0 @@ expect(Object.keys(item3Loaded)).not.toContain('k2'); |
@@ -45,3 +45,3 @@ { | ||
}, | ||
"version": "8.21.2", | ||
"version": "8.21.3", | ||
"description": "Lowest Common Denominator API to supported Databases", | ||
@@ -48,0 +48,0 @@ "keywords": [ |
@@ -261,7 +261,4 @@ import { | ||
/** | ||
* Mutates | ||
*/ | ||
sortRows<ROW>(rows: ROW[]): ROW[] { | ||
rows.forEach(r => _filterUndefinedValues(r, true)) | ||
rows = rows.map(r => _filterUndefinedValues(r)) | ||
@@ -268,0 +265,0 @@ if (this.cfg.sortOnSave) { |
@@ -112,2 +112,3 @@ import { pDelay, _deepCopy, _pick, _sortBy } from '@naturalcycles/js-lib' | ||
} | ||
// deepFreeze(item3) // no, Dao is expected to mutate object to add id, created, updated | ||
await dao.save(item3) | ||
@@ -117,2 +118,4 @@ const item3Loaded = await dao.requireById(item3.id) | ||
expect(item3Loaded.k2).toBe(null) | ||
expect(Object.keys(item3)).toContain('k2') | ||
expect(item3.k2).toBeNull() | ||
}) | ||
@@ -126,7 +129,16 @@ } | ||
} | ||
// deepFreeze(item3) // no, Dao is expected to mutate object to add id, created, updated | ||
const expected = { ...item3 } | ||
delete expected.k2 | ||
await dao.save(item3) | ||
expected.updated = item3.updated // as it's mutated | ||
const item3Loaded = await dao.requireById(item3.id) | ||
expectMatch([item3], [item3Loaded], quirks) | ||
expectMatch([expected], [item3Loaded], quirks) | ||
expect(item3Loaded.k2).toBe(undefined) | ||
expect(Object.keys(item3Loaded)).not.toContain('k2') | ||
expect(Object.keys(item3)).toContain('k2') | ||
expect(item3.k2).toBeUndefined() | ||
}) | ||
@@ -133,0 +145,0 @@ |
@@ -146,2 +146,3 @@ import { pDelay, pMap, _filterObject, _pick, _sortBy } from '@naturalcycles/js-lib' | ||
} | ||
deepFreeze(item3) | ||
await db.saveBatch(TEST_TABLE, [item3]) | ||
@@ -159,5 +160,9 @@ const item3Loaded = (await db.getByIds<TestItemDBM>(TEST_TABLE, [item3.id]))[0]! | ||
} | ||
deepFreeze(item3) | ||
const expected = { ...item3 } | ||
delete expected.k2 | ||
await db.saveBatch(TEST_TABLE, [item3]) | ||
const item3Loaded = (await db.getByIds<TestItemDBM>(TEST_TABLE, [item3.id]))[0]! | ||
expectMatch([item3], [item3Loaded], quirks) | ||
expectMatch([expected], [item3Loaded], quirks) | ||
expect(item3Loaded.k2).toBe(undefined) | ||
@@ -164,0 +169,0 @@ expect(Object.keys(item3Loaded)).not.toContain('k2') |
400781
9113