Skip to content

Commit 4a783f3

Browse files
committed
chore: test fix
1 parent 3714c11 commit 4a783f3

File tree

1 file changed

+37
-21
lines changed

1 file changed

+37
-21
lines changed

test/types/client_bulk_write.test-d.ts

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { expectError, expectType } from 'tsd';
1+
import { expectAssignable, expectError, expectNotAssignable, expectType } from 'tsd';
22

33
import {
44
type ClientBulkWriteModel,
@@ -23,23 +23,26 @@ type Author = { name: string; published: number };
2323
type Store = { _id: UUID };
2424

2525
// Baseline check that schema modifies the following fields for each type.
26-
expectType<ClientInsertOneModel<Book>['document']>(null as unknown as OptionalId<Book>);
26+
declare const clientInsertOneModel: ClientInsertOneModel<Book>;
27+
expectType<OptionalId<Book>>(clientInsertOneModel.document);
2728

28-
expectType<ClientReplaceOneModel<Book>['filter']>(null as unknown as Filter<Book>);
29-
expectType<ClientReplaceOneModel<Book>['replacement']>(null as unknown as WithoutId<Book>);
29+
declare const clientReplaceOneModel: ClientReplaceOneModel<Book>;
30+
expectType<Filter<Book>>(clientReplaceOneModel.filter);
31+
expectType<WithoutId<Book>>(clientReplaceOneModel.replacement);
3032

31-
expectType<ClientUpdateOneModel<Book>['filter']>(null as unknown as Filter<Book>);
32-
expectType<ClientUpdateOneModel<Book>['update']>(
33-
null as unknown as UpdateFilter<Book> | Document[]
34-
);
33+
declare const clientUpdateOneModel: ClientUpdateOneModel<Book>;
34+
expectType<Filter<Book>>(clientUpdateOneModel.filter);
35+
expectType<UpdateFilter<Book> | Document[]>(clientUpdateOneModel.update);
3536

36-
expectType<ClientUpdateManyModel<Book>['filter']>(null as unknown as Filter<Book>);
37-
expectType<ClientUpdateManyModel<Book>['update']>(
38-
null as unknown as UpdateFilter<Book> | Document[]
39-
);
37+
declare const clientUpdateManyModel: ClientUpdateManyModel<Book>;
38+
expectType<Filter<Book>>(clientUpdateManyModel.filter);
39+
expectType<UpdateFilter<Book> | Document[]>(clientUpdateManyModel.update);
4040

41-
expectType<ClientDeleteOneModel<Book>['filter']>(null as unknown as Filter<Book>);
42-
expectType<ClientDeleteManyModel<Book>['filter']>(null as unknown as Filter<Book>);
41+
declare const clientDeleteOneModel: ClientDeleteOneModel<Book>;
42+
expectType<Filter<Book>>(clientDeleteOneModel.filter);
43+
44+
declare const clientDeleteManyModel: ClientDeleteManyModel<Book>;
45+
expectType<Filter<Book>>(clientDeleteManyModel.filter);
4346

4447
client.bulkWrite([]); // empty should always work
4548

@@ -72,7 +75,7 @@ client.bulkWrite([
7275
{ namespace: 'db.authors', name: 'deleteMany', filter: {} }
7376
]);
7477

75-
// No schemas - incorrect use - random namespaces, no type checking
78+
// No schemas - random namespaces, no type checking
7679
client.bulkWrite([
7780
{
7881
namespace: 'db.whatever',
@@ -168,27 +171,40 @@ expectError(
168171
namespace: 'db.authors',
169172
name: 'insertOne',
170173
document: { name: 'bob', published: '' } // wrong type
171-
},
174+
}
175+
])
176+
);
177+
178+
expectError(
179+
client.bulkWrite<MongoDBSchemas>([
172180
{
173181
namespace: 'db.authors',
174182
name: 'replaceOne',
175183
filter: { name: 'bob' },
176184
replacement: { name: 'ann', publish: 2 } // key typo
177-
},
185+
}
186+
])
187+
);
188+
189+
expectError(
190+
client.bulkWrite<MongoDBSchemas>([
178191
{
179192
namespace: 'db.blah', // unknown namespace
180193
name: 'updateOne',
181194
filter: { name: 'bob', published: 2 },
182195
update: {}
183-
},
196+
}
197+
])
198+
);
199+
200+
expectError(
201+
client.bulkWrite<MongoDBSchemas>([
184202
{
185203
namespace: 'db.authors',
186204
name: 'updateManyy', // unknown operation
187205
filter: { name: 'bob', published: 2 },
188206
update: {}
189-
},
190-
{ namespace: 'db.authors', name: 'deleteOne', filter: {} },
191-
{ namespace: 'db.authors', name: 'deleteMany', filter: {} }
207+
}
192208
])
193209
);
194210

0 commit comments

Comments
 (0)