@@ -29,6 +29,8 @@ import {
29
29
} from 'ember-cloud-firestore-adapter/firebase/firestore' ;
30
30
import type CloudFirestoreModularAdapter from 'ember-cloud-firestore-adapter/adapters/cloud-firestore-modular' ;
31
31
import AdapterRecordNotFoundError from 'ember-cloud-firestore-adapter/utils/custom-errors' ;
32
+ import type { Snapshot } from 'ember-cloud-firestore-adapter/adapters/cloud-firestore-modular' ;
33
+ import type UserModel from 'dummy/tests/dummy/app/models/user' ;
32
34
import resetFixtureData from '../../helpers/reset-fixture-data' ;
33
35
34
36
module ( 'Unit | Adapter | cloud firestore modular' , function ( hooks ) {
@@ -62,8 +64,14 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
62
64
test ( 'should proxy a call to updateRecord and return with the created doc' , async function ( assert ) {
63
65
// Arrange
64
66
const store = this . owner . lookup ( 'service:store' ) ;
65
- const modelClass = { modelName : 'user' } as ModelSchema ;
66
- const snapshot = { id : 'user_100' , age : 30 , username : 'user_100' } ;
67
+ const modelClass = store . modelFor ( 'user' ) ;
68
+ const snapshot = store
69
+ . createRecord < UserModel > ( 'user' , {
70
+ id : 'user_100' ,
71
+ age : 30 ,
72
+ username : 'user_100' ,
73
+ } )
74
+ . _createSnapshot ( ) as Snapshot ;
67
75
const adapter = this . owner . lookup (
68
76
'adapter:cloud-firestore-modular' ,
69
77
) as CloudFirestoreModularAdapter ;
@@ -73,16 +81,12 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
73
81
. returns ( Promise . resolve ( { foo : 'foo' } ) ) ;
74
82
75
83
// Act
76
- const result = await adapter . createRecord (
77
- store ,
78
- modelClass ,
79
- snapshot as any ,
80
- ) ;
84
+ const result = await adapter . createRecord ( store , modelClass , snapshot ) ;
81
85
82
86
// Assert
83
87
assert . deepEqual ( result , { foo : 'foo' } ) ;
84
88
assert . ok (
85
- updateRecordStub . calledWithExactly ( store , modelClass , snapshot as any ) ,
89
+ updateRecordStub . calledWithExactly ( store , modelClass , snapshot ) ,
86
90
) ;
87
91
} ) ;
88
92
} ) ;
@@ -91,11 +95,13 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
91
95
test ( 'should update record and resolve with the updated doc' , async function ( assert ) {
92
96
// Arrange
93
97
const store = this . owner . lookup ( 'service:store' ) ;
94
- const modelClass = { modelName : 'user' } as ModelSchema ;
95
- const snapshot = {
96
- id : 'user_a' ,
97
- age : 50 ,
98
- } ;
98
+ const modelClass = store . modelFor ( 'user' ) ;
99
+ const snapshot = store
100
+ . createRecord < UserModel > ( 'user' , {
101
+ id : 'user_a' ,
102
+ age : 50 ,
103
+ } )
104
+ . _createSnapshot ( ) as Snapshot ;
99
105
const adapter = this . owner . lookup (
100
106
'adapter:cloud-firestore-modular' ,
101
107
) as CloudFirestoreModularAdapter ;
@@ -106,11 +112,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
106
112
} ) ;
107
113
108
114
// Act
109
- const result = await adapter . updateRecord (
110
- store ,
111
- modelClass ,
112
- snapshot as any ,
113
- ) ;
115
+ const result = await adapter . updateRecord ( store , modelClass , snapshot ) ;
114
116
115
117
// Assert
116
118
assert . deepEqual ( result , { age : 50 , username : 'user_a' } ) ;
@@ -124,7 +126,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
124
126
test ( 'should update record in a custom collection and resolve with the updated resource' , async function ( assert ) {
125
127
// Arrange
126
128
const store = this . owner . lookup ( 'service:store' ) ;
127
- const modelClass = { modelName : 'user' } as ModelSchema ;
129
+ const modelClass = store . modelFor ( 'user' ) ;
128
130
const snapshot = {
129
131
id : 'user_a' ,
130
132
age : 50 ,
@@ -158,7 +160,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
158
160
test ( 'should update record and process additional batched writes' , async function ( assert ) {
159
161
// Arrange
160
162
const store = this . owner . lookup ( 'service:store' ) ;
161
- const modelClass = { modelName : 'user' } as ModelSchema ;
163
+ const modelClass = store . modelFor ( 'user' ) ;
162
164
const snapshot = {
163
165
id : 'user_a' ,
164
166
age : 50 ,
@@ -203,14 +205,16 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
203
205
test ( 'should delete record' , async function ( assert ) {
204
206
// Arrange
205
207
const store = this . owner . lookup ( 'service:store' ) ;
206
- const modelClass = { modelName : 'user' } as ModelSchema ;
207
- const snapshot = { id : 'user_a' } ;
208
+ const modelClass = store . modelFor ( 'user' ) ;
209
+ const snapshot = store
210
+ . createRecord < UserModel > ( 'user' , { id : 'user_a' } )
211
+ . _createSnapshot ( ) as Snapshot ;
208
212
const adapter = this . owner . lookup (
209
213
'adapter:cloud-firestore-modular' ,
210
214
) as CloudFirestoreModularAdapter ;
211
215
212
216
// Act
213
- await adapter . deleteRecord ( store , modelClass , snapshot as any ) ;
217
+ await adapter . deleteRecord ( store , modelClass , snapshot ) ;
214
218
215
219
// Assert
216
220
const userA = await getDoc ( doc ( db , 'users/user_a' ) ) ;
@@ -221,7 +225,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
221
225
test ( 'should delete record in a custom collection' , async function ( assert ) {
222
226
// Arrange
223
227
const store = this . owner . lookup ( 'service:store' ) ;
224
- const modelClass = { modelName : 'post' } as ModelSchema ;
228
+ const modelClass = store . modelFor ( 'post' ) ;
225
229
const snapshot = {
226
230
id : 'post_b' ,
227
231
@@ -247,7 +251,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
247
251
test ( 'should delete record and process additional batched writes' , async function ( assert ) {
248
252
// Arrange
249
253
const store = this . owner . lookup ( 'service:store' ) ;
250
- const modelClass = { modelName : 'user' } as ModelSchema ;
254
+ const modelClass = store . modelFor ( 'user' ) ;
251
255
const snapshot = {
252
256
id : 'user_a' ,
253
257
adapterOptions : {
@@ -282,7 +286,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
282
286
const store = this . owner . lookup ( 'service:store' ) ;
283
287
store . normalize = sinon . stub ( ) ;
284
288
( store . push as ( data : EmptyResourceDocument ) => null ) = sinon . stub ( ) ;
285
- const modelClass = { modelName : 'user' } as ModelSchema ;
289
+ const modelClass = store . modelFor ( 'user' ) ;
286
290
const adapter = this . owner . lookup (
287
291
'adapter:cloud-firestore-modular' ,
288
292
) as CloudFirestoreModularAdapter ;
@@ -320,9 +324,11 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
320
324
const store = this . owner . lookup ( 'service:store' ) ;
321
325
store . normalize = sinon . stub ( ) ;
322
326
( store . push as ( data : EmptyResourceDocument ) => null ) = sinon . stub ( ) ;
323
- const modelClass = { modelName : 'user' } as ModelSchema ;
327
+ const modelClass = store . modelFor ( 'user' ) ;
324
328
const modelId = 'user_a' ;
325
- const snapshot = { } ;
329
+ const snapshot = store
330
+ . createRecord < UserModel > ( 'user' , { } )
331
+ . _createSnapshot ( ) as Snapshot ;
326
332
const adapter = this . owner . lookup (
327
333
'adapter:cloud-firestore-modular' ,
328
334
) as CloudFirestoreModularAdapter ;
@@ -332,7 +338,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
332
338
store ,
333
339
modelClass ,
334
340
modelId ,
335
- snapshot as any ,
341
+ snapshot ,
336
342
) ;
337
343
338
344
// Assert
@@ -349,7 +355,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
349
355
const store = this . owner . lookup ( 'service:store' ) ;
350
356
store . normalize = sinon . stub ( ) ;
351
357
( store . push as ( data : EmptyResourceDocument ) => null ) = sinon . stub ( ) ;
352
- const modelClass = { modelName : 'user' } as ModelSchema ;
358
+ const modelClass = store . modelFor ( 'user' ) ;
353
359
const modelId = 'user_a' ;
354
360
const snapshot = {
355
361
adapterOptions : {
@@ -381,16 +387,18 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
381
387
const store = this . owner . lookup ( 'service:store' ) ;
382
388
store . normalize = sinon . stub ( ) ;
383
389
( store . push as ( data : EmptyResourceDocument ) => null ) = sinon . stub ( ) ;
384
- const modelClass = { modelName : 'user' } as ModelSchema ;
390
+ const modelClass = store . modelFor ( 'user' ) ;
385
391
const modelId = 'user_100' ;
386
- const snapshot = { } ;
392
+ const snapshot = store
393
+ . createRecord < UserModel > ( 'user' , { } )
394
+ . _createSnapshot ( ) as Snapshot ;
387
395
const adapter = this . owner . lookup (
388
396
'adapter:cloud-firestore-modular' ,
389
397
) as CloudFirestoreModularAdapter ;
390
398
391
399
try {
392
400
// Act
393
- await adapter . findRecord ( store , modelClass , modelId , snapshot as any ) ;
401
+ await adapter . findRecord ( store , modelClass , modelId , snapshot ) ;
394
402
} catch ( error ) {
395
403
// Assert
396
404
assert . ok ( error instanceof AdapterRecordNotFoundError ) ;
@@ -408,7 +416,9 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
408
416
const store = this . owner . lookup ( 'service:store' ) ;
409
417
store . normalize = sinon . stub ( ) ;
410
418
( store . push as ( data : EmptyResourceDocument ) => null ) = sinon . stub ( ) ;
411
- const snapshot = { } ;
419
+ const snapshot = store
420
+ . createRecord < UserModel > ( 'user' , { } )
421
+ . _createSnapshot ( ) as Snapshot ;
412
422
const url = 'users/user_a' ;
413
423
const relationship = { type : 'user' , options : { } } ;
414
424
const adapter = this . owner . lookup (
@@ -418,7 +428,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
418
428
// Act
419
429
const result = await adapter . findBelongsTo (
420
430
store ,
421
- snapshot as any ,
431
+ snapshot ,
422
432
url ,
423
433
relationship as any ,
424
434
) ;
@@ -648,7 +658,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
648
658
test ( 'should query for records' , async function ( assert ) {
649
659
// Arrange
650
660
const store = this . owner . lookup ( 'service:store' ) ;
651
- const modelClass = { modelName : 'user' } as ModelSchema ;
661
+ const modelClass = store . modelFor ( 'user' ) ;
652
662
const queryRef = {
653
663
filter ( reference : CollectionReference ) {
654
664
return query ( reference , where ( 'age' , '>=' , 15 ) , limit ( 1 ) ) ;
@@ -680,7 +690,7 @@ module('Unit | Adapter | cloud firestore modular', function (hooks) {
680
690
test ( 'should query for records in a custom collection' , async function ( assert ) {
681
691
// Arrange
682
692
const store = this . owner . lookup ( 'service:store' ) ;
683
- const modelClass = { modelName : 'user' } as ModelSchema ;
693
+ const modelClass = store . modelFor ( 'user' ) ;
684
694
const queryRef = {
685
695
buildReference ( firestore : Firestore ) {
686
696
return collection ( firestore , 'admins' ) ;
0 commit comments