@sprucelabs/data-stores 28.1.349 → 28.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,10 +28,8 @@ export default class MongoDatabase implements Database {
28
28
  private listIndexes;
29
29
  dropIndex(collection: string, index: Index): Promise<void>;
30
30
  getUniqueIndexes(collection: string): Promise<IndexWithFilter[]>;
31
- getIndexes(collection: string, shouldIncludeUnique?: boolean): Promise<IndexWithFilter[] | {
32
- fields: string[];
33
- filter: any;
34
- }[]>;
31
+ getIndexes(collection: string, shouldIncludeUnique?: boolean): Promise<IndexWithFilter[]>;
32
+ private mongoIndexToIndexWithFilter;
35
33
  createIndex(collection: string, index: Index): Promise<void>;
36
34
  private assertIndexDoesNotExist;
37
35
  private doesInclude;
@@ -276,18 +276,12 @@ class MongoDatabase {
276
276
  try {
277
277
  const indexes = await this.listIndexes(collection);
278
278
  if (shouldIncludeUnique) {
279
- return indexes.map((index) => ({
280
- fields: Object.keys(index.key),
281
- filter: index.partialFilterExpression,
282
- }));
279
+ return indexes.map((index) => this.mongoIndexToIndexWithFilter(index));
283
280
  }
284
281
  const nonUniqueIndexes = [];
285
282
  for (const index of indexes) {
286
283
  if (!index.unique) {
287
- nonUniqueIndexes.push({
288
- fields: Object.keys(index.key),
289
- filter: undefined,
290
- });
284
+ nonUniqueIndexes.push(this.mongoIndexToIndexWithFilter(index));
291
285
  }
292
286
  }
293
287
  return nonUniqueIndexes;
@@ -296,6 +290,13 @@ class MongoDatabase {
296
290
  return [];
297
291
  }
298
292
  }
293
+ mongoIndexToIndexWithFilter(index) {
294
+ return {
295
+ fields: Object.keys(index.key),
296
+ filter: index.partialFilterExpression,
297
+ name: index.name,
298
+ };
299
+ }
299
300
  async createIndex(collection, index) {
300
301
  const currentIndexes = await this.getIndexes(collection);
301
302
  this.assertIndexDoesNotExist(currentIndexes, index, collection);
@@ -394,8 +395,7 @@ class MongoDatabase {
394
395
  return (0, database_utilities_1.generateIndexName)(this.normalizeIndex(indexWithFilter));
395
396
  }
396
397
  normalizeIndex(index) {
397
- const { fields, filter } = (0, database_utilities_1.normalizeIndex)(index);
398
- return { fields, filter };
398
+ return (0, database_utilities_1.normalizeIndex)(index);
399
399
  }
400
400
  async syncUniqueIndexes(collectionName, indexes) {
401
401
  await this._syncIndexes(collectionName, indexes, 'createUniqueIndex', true);
@@ -23,6 +23,9 @@ function areIndexesEqual(left, right) {
23
23
  return name1 === name2;
24
24
  }
25
25
  function generateIndexName(indexWithFilter) {
26
+ if (indexWithFilter.name) {
27
+ return indexWithFilter.name;
28
+ }
26
29
  let name = indexWithFilter.fields.join('_');
27
30
  if (indexWithFilter.filter) {
28
31
  name += '_filtered';
@@ -30,10 +33,15 @@ function generateIndexName(indexWithFilter) {
30
33
  return name;
31
34
  }
32
35
  function normalizeIndex(index) {
36
+ var _a;
33
37
  const fields = Array.isArray(index) ? index : index.fields;
34
38
  const filter = Array.isArray(index) ? undefined : index.filter;
35
39
  fields.sort();
36
- return { fields, filter };
40
+ return {
41
+ fields,
42
+ filter,
43
+ name: (_a = index.name) !== null && _a !== void 0 ? _a : undefined,
44
+ };
37
45
  }
38
46
  function pluckMissingIndexes(left, right) {
39
47
  return (0, differenceWith_1.default)(left, right, areIndexesEqual);
@@ -28,10 +28,8 @@ export default class MongoDatabase implements Database {
28
28
  private listIndexes;
29
29
  dropIndex(collection: string, index: Index): Promise<void>;
30
30
  getUniqueIndexes(collection: string): Promise<IndexWithFilter[]>;
31
- getIndexes(collection: string, shouldIncludeUnique?: boolean): Promise<IndexWithFilter[] | {
32
- fields: string[];
33
- filter: any;
34
- }[]>;
31
+ getIndexes(collection: string, shouldIncludeUnique?: boolean): Promise<IndexWithFilter[]>;
32
+ private mongoIndexToIndexWithFilter;
35
33
  createIndex(collection: string, index: Index): Promise<void>;
36
34
  private assertIndexDoesNotExist;
37
35
  private doesInclude;
@@ -306,18 +306,12 @@ export default class MongoDatabase {
306
306
  try {
307
307
  const indexes = yield this.listIndexes(collection);
308
308
  if (shouldIncludeUnique) {
309
- return indexes.map((index) => ({
310
- fields: Object.keys(index.key),
311
- filter: index.partialFilterExpression,
312
- }));
309
+ return indexes.map((index) => this.mongoIndexToIndexWithFilter(index));
313
310
  }
314
311
  const nonUniqueIndexes = [];
315
312
  for (const index of indexes) {
316
313
  if (!index.unique) {
317
- nonUniqueIndexes.push({
318
- fields: Object.keys(index.key),
319
- filter: undefined,
320
- });
314
+ nonUniqueIndexes.push(this.mongoIndexToIndexWithFilter(index));
321
315
  }
322
316
  }
323
317
  return nonUniqueIndexes;
@@ -327,6 +321,13 @@ export default class MongoDatabase {
327
321
  }
328
322
  });
329
323
  }
324
+ mongoIndexToIndexWithFilter(index) {
325
+ return {
326
+ fields: Object.keys(index.key),
327
+ filter: index.partialFilterExpression,
328
+ name: index.name,
329
+ };
330
+ }
330
331
  createIndex(collection, index) {
331
332
  return __awaiter(this, void 0, void 0, function* () {
332
333
  const currentIndexes = yield this.getIndexes(collection);
@@ -433,8 +434,7 @@ export default class MongoDatabase {
433
434
  return generateIndexName(this.normalizeIndex(indexWithFilter));
434
435
  }
435
436
  normalizeIndex(index) {
436
- const { fields, filter } = normalizeIndex(index);
437
- return { fields, filter };
437
+ return normalizeIndex(index);
438
438
  }
439
439
  syncUniqueIndexes(collectionName, indexes) {
440
440
  return __awaiter(this, void 0, void 0, function* () {
@@ -13,6 +13,9 @@ export function areIndexesEqual(left, right) {
13
13
  return name1 === name2;
14
14
  }
15
15
  export function generateIndexName(indexWithFilter) {
16
+ if (indexWithFilter.name) {
17
+ return indexWithFilter.name;
18
+ }
16
19
  let name = indexWithFilter.fields.join('_');
17
20
  if (indexWithFilter.filter) {
18
21
  name += '_filtered';
@@ -20,10 +23,15 @@ export function generateIndexName(indexWithFilter) {
20
23
  return name;
21
24
  }
22
25
  export function normalizeIndex(index) {
26
+ var _a;
23
27
  const fields = Array.isArray(index) ? index : index.fields;
24
28
  const filter = Array.isArray(index) ? undefined : index.filter;
25
29
  fields.sort();
26
- return { fields, filter };
30
+ return {
31
+ fields,
32
+ filter,
33
+ name: (_a = index.name) !== null && _a !== void 0 ? _a : undefined,
34
+ };
27
35
  }
28
36
  export function pluckMissingIndexes(left, right) {
29
37
  return differenceWith(left, right, areIndexesEqual);
@@ -1,6 +1,6 @@
1
1
  import { Database, IndexWithFilter, TestConnect } from '../types/database.types';
2
2
  import { DataStore } from '../types/stores.types';
3
- declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertEmptyDatabaseReturnsEmptyArray", "assertKnowsIfConnectionClosed", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "generateIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanLimitResults", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexsAddsMissingIndexes", "assertSyncingUniqueIndexsSkipsExistingIndexs", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
3
+ declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexsAddsMissingIndexes", "assertSyncingUniqueIndexsSkipsExistingIndexs", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
4
4
  export type DatabaseAssertionName = (typeof methods)[number];
5
5
  declare const databaseAssertUtil: {
6
6
  collectionName: string;
@@ -8,7 +8,7 @@ declare const databaseAssertUtil: {
8
8
  _getIndexesWith_IdFilteredOut(db: Database): Promise<IndexWithFilter[]>;
9
9
  _filterOut_Id(allIndexes: IndexWithFilter[]): IndexWithFilter[];
10
10
  _assertUpdateUpdatedRightNumberOfRecords(db: Database, search: Record<string, any>, updates: Record<string, any>, expectedUpdateCount: number): Promise<void>;
11
- generateIdDifferentEachTime(connect: TestConnect): Promise<void>;
11
+ assertGeneratesIdDifferentEachTime(connect: TestConnect): Promise<void>;
12
12
  assertCanSortDesc(connect: TestConnect): Promise<void>;
13
13
  assertCanSortAsc(connect: TestConnect): Promise<void>;
14
14
  assertInsertingGeneratesId(connect: TestConnect): Promise<void>;
@@ -17,17 +17,14 @@ const methods = [
17
17
  'assertThrowsWhenCantConnect',
18
18
  'assertThrowsWithBadDatabaseName',
19
19
  //inserting
20
- 'assertEmptyDatabaseReturnsEmptyArray',
21
20
  'assertKnowsIfConnectionClosed',
22
- 'assertFindOneOnEmptyDatabaseReturnsNull',
23
21
  'assertCanSortDesc',
24
22
  'assertCanSortAsc',
25
23
  'assertCanSortById',
26
24
  'assertCanQueryWithOr',
27
- 'generateIdDifferentEachTime',
25
+ 'assertGeneratesIdDifferentEachTime',
28
26
  'assertInsertingGeneratesId',
29
27
  'assertCanCreateMany',
30
- 'assertCanLimitResults',
31
28
  'assertCanCreateWithObjectField',
32
29
  //counting
33
30
  'assertCanCountOnId',
@@ -103,6 +100,10 @@ const databaseAssertUtil = {
103
100
  const db = yield connectToDabatase(connect);
104
101
  yield db.dropDatabase();
105
102
  yield this.shutdown(db);
103
+ if (tests === null || tests === void 0 ? void 0 : tests[0].startsWith('!')) {
104
+ //@ts-ignore
105
+ tests = methods;
106
+ }
106
107
  const toRun = tests !== null && tests !== void 0 ? tests : methods;
107
108
  for (const method of toRun) {
108
109
  try {
@@ -134,7 +135,7 @@ const databaseAssertUtil = {
134
135
  assert.isEqual(count, expectedUpdateCount);
135
136
  });
136
137
  },
137
- generateIdDifferentEachTime(connect) {
138
+ assertGeneratesIdDifferentEachTime(connect) {
138
139
  return __awaiter(this, void 0, void 0, function* () {
139
140
  const db = yield connectToDabatase(connect);
140
141
  const id1 = db.generateId();
@@ -41,6 +41,7 @@ export type TestConnect = (connectionString?: string, dbName?: string) => Promis
41
41
  export interface IndexWithFilter {
42
42
  fields: string[];
43
43
  filter?: Record<string, any>;
44
+ name?: string;
44
45
  }
45
46
  export type Index = string[] | IndexWithFilter;
46
47
  export interface CreateOptions extends DatabaseInternalOptions {
@@ -1,6 +1,6 @@
1
1
  import { Database, IndexWithFilter, TestConnect } from '../types/database.types';
2
2
  import { DataStore } from '../types/stores.types';
3
- declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertEmptyDatabaseReturnsEmptyArray", "assertKnowsIfConnectionClosed", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "generateIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanLimitResults", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexsAddsMissingIndexes", "assertSyncingUniqueIndexsSkipsExistingIndexs", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
3
+ declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexsAddsMissingIndexes", "assertSyncingUniqueIndexsSkipsExistingIndexs", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
4
4
  export type DatabaseAssertionName = (typeof methods)[number];
5
5
  declare const databaseAssertUtil: {
6
6
  collectionName: string;
@@ -8,7 +8,7 @@ declare const databaseAssertUtil: {
8
8
  _getIndexesWith_IdFilteredOut(db: Database): Promise<IndexWithFilter[]>;
9
9
  _filterOut_Id(allIndexes: IndexWithFilter[]): IndexWithFilter[];
10
10
  _assertUpdateUpdatedRightNumberOfRecords(db: Database, search: Record<string, any>, updates: Record<string, any>, expectedUpdateCount: number): Promise<void>;
11
- generateIdDifferentEachTime(connect: TestConnect): Promise<void>;
11
+ assertGeneratesIdDifferentEachTime(connect: TestConnect): Promise<void>;
12
12
  assertCanSortDesc(connect: TestConnect): Promise<void>;
13
13
  assertCanSortAsc(connect: TestConnect): Promise<void>;
14
14
  assertInsertingGeneratesId(connect: TestConnect): Promise<void>;
@@ -13,17 +13,14 @@ const methods = [
13
13
  'assertThrowsWhenCantConnect',
14
14
  'assertThrowsWithBadDatabaseName',
15
15
  //inserting
16
- 'assertEmptyDatabaseReturnsEmptyArray',
17
16
  'assertKnowsIfConnectionClosed',
18
- 'assertFindOneOnEmptyDatabaseReturnsNull',
19
17
  'assertCanSortDesc',
20
18
  'assertCanSortAsc',
21
19
  'assertCanSortById',
22
20
  'assertCanQueryWithOr',
23
- 'generateIdDifferentEachTime',
21
+ 'assertGeneratesIdDifferentEachTime',
24
22
  'assertInsertingGeneratesId',
25
23
  'assertCanCreateMany',
26
- 'assertCanLimitResults',
27
24
  'assertCanCreateWithObjectField',
28
25
  //counting
29
26
  'assertCanCountOnId',
@@ -98,6 +95,10 @@ const databaseAssertUtil = {
98
95
  const db = await connectToDabatase(connect);
99
96
  await db.dropDatabase();
100
97
  await this.shutdown(db);
98
+ if (tests === null || tests === void 0 ? void 0 : tests[0].startsWith('!')) {
99
+ //@ts-ignore
100
+ tests = methods;
101
+ }
101
102
  const toRun = tests !== null && tests !== void 0 ? tests : methods;
102
103
  for (const method of toRun) {
103
104
  try {
@@ -124,7 +125,7 @@ const databaseAssertUtil = {
124
125
  const count = await db.count(this.collectionName, updates);
125
126
  test_utils_1.assert.isEqual(count, expectedUpdateCount);
126
127
  },
127
- async generateIdDifferentEachTime(connect) {
128
+ async assertGeneratesIdDifferentEachTime(connect) {
128
129
  const db = await connectToDabatase(connect);
129
130
  const id1 = db.generateId();
130
131
  const id2 = db.generateId();
@@ -41,6 +41,7 @@ export type TestConnect = (connectionString?: string, dbName?: string) => Promis
41
41
  export interface IndexWithFilter {
42
42
  fields: string[];
43
43
  filter?: Record<string, any>;
44
+ name?: string;
44
45
  }
45
46
  export type Index = string[] | IndexWithFilter;
46
47
  export interface CreateOptions extends DatabaseInternalOptions {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "28.1.349",
6
+ "version": "28.2.0",
7
7
  "files": [
8
8
  "build/**/*",
9
9
  "!build/__tests__",