@@ -5,14 +5,16 @@ import { setupTest } from 'ember-qunit';
5
5
import type Store from '@ember-data/store' ;
6
6
import { recordIdentifierFor } from '@ember-data/store' ;
7
7
import type { JsonApiResource } from '@ember-data/store/-types/q/record-data-json-api' ;
8
+ import type { ResourceType } from '@warp-drive/core-types/symbols' ;
8
9
import type { Transform } from '@warp-drive/schema-record/schema' ;
9
10
import { registerDerivations , SchemaService , withFields } from '@warp-drive/schema-record/schema' ;
10
11
11
- interface User {
12
+ interface CreateUserType {
12
13
id : string | null ;
13
14
$type : 'user' ;
14
- name : string ;
15
- favoriteNumbers : string [ ] ;
15
+ name : string | null ;
16
+ favoriteNumbers : string [ ] | null ;
17
+ [ ResourceType ] : 'user' ;
16
18
}
17
19
18
20
module ( 'Reads | array fields' , function ( hooks ) {
@@ -40,13 +42,13 @@ module('Reads | array fields', function (hooks) {
40
42
} ) ;
41
43
42
44
const sourceArray = [ '1' , '2' ] ;
43
- const record = store . createRecord ( 'user' , { name : 'Rey Skybarker' , favoriteNumbers : sourceArray } ) as User ;
45
+ const record = store . createRecord < CreateUserType > ( 'user' , { name : 'Rey Skybarker' , favoriteNumbers : sourceArray } ) ;
44
46
45
47
assert . strictEqual ( record . id , null , 'id is accessible' ) ;
46
48
assert . strictEqual ( record . $type , 'user' , '$type is accessible' ) ;
47
49
assert . strictEqual ( record . name , 'Rey Skybarker' , 'name is accessible' ) ;
48
50
assert . true ( Array . isArray ( record . favoriteNumbers ) , 'we can access favoriteNumber array' ) ;
49
- assert . deepEqual ( record . favoriteNumbers . slice ( ) , [ '1' , '2' ] , 'We have the correct array members' ) ;
51
+ assert . deepEqual ( record . favoriteNumbers ? .slice ( ) , [ '1' , '2' ] , 'We have the correct array members' ) ;
50
52
assert . strictEqual ( record . favoriteNumbers , record . favoriteNumbers , 'We have a stable array reference' ) ;
51
53
assert . notStrictEqual ( record . favoriteNumbers , sourceArray ) ;
52
54
@@ -103,13 +105,13 @@ module('Reads | array fields', function (hooks) {
103
105
schema . registerTransform ( 'string-from-int' , StringFromIntTransform ) ;
104
106
105
107
const sourceArray = [ '1' , '2' ] ;
106
- const record = store . createRecord ( 'user' , { name : 'Rey Skybarker' , favoriteNumbers : sourceArray } ) as User ;
108
+ const record = store . createRecord < CreateUserType > ( 'user' , { name : 'Rey Skybarker' , favoriteNumbers : sourceArray } ) ;
107
109
108
110
assert . strictEqual ( record . id , null , 'id is accessible' ) ;
109
111
assert . strictEqual ( record . $type , 'user' , '$type is accessible' ) ;
110
112
assert . strictEqual ( record . name , 'Rey Skybarker' , 'name is accessible' ) ;
111
113
assert . true ( Array . isArray ( record . favoriteNumbers ) , 'we can access favoriteNumber array' ) ;
112
- assert . deepEqual ( record . favoriteNumbers . slice ( ) , [ '1' , '2' ] , 'We have the correct array members' ) ;
114
+ assert . deepEqual ( record . favoriteNumbers ? .slice ( ) , [ '1' , '2' ] , 'We have the correct array members' ) ;
113
115
assert . strictEqual ( record . favoriteNumbers , record . favoriteNumbers , 'We have a stable array reference' ) ;
114
116
assert . notStrictEqual ( record . favoriteNumbers , sourceArray ) ;
115
117
0 commit comments