@@ -9,30 +9,30 @@ import testInDebug from '@ember-data/unpublished-test-infra/test-support/test-in
9
9
10
10
import createTrackingContext from '../../helpers/create-tracking-context' ;
11
11
12
- module ( 'integration/references/has-many' , function ( hooks ) {
13
- setupRenderingTest ( hooks ) ;
12
+ class Family extends Model {
13
+ @hasMany ( 'person' , { async : true , inverse : 'family' } ) persons ;
14
+ }
14
15
15
- hooks . beforeEach ( function ( ) {
16
- const Family = Model . extend ( {
17
- persons : hasMany ( 'person' , { async : true , inverse : 'family' } ) ,
18
- } ) ;
16
+ class Person extends Model {
17
+ @attr name ;
18
+ @belongsTo ( 'family' , { async : true , inverse : 'persons' } ) family ;
19
+ @hasMany ( 'pet' , { async : true , inverse : null } ) pets ;
20
+ }
19
21
20
- const Person = Model . extend ( {
21
- name : attr ( ) ,
22
- family : belongsTo ( 'family' , { async : true , inverse : 'persons' } ) ,
23
- pets : hasMany ( 'pet' , { async : true , inverse : null } ) ,
24
- } ) ;
22
+ class Pet extends Model {
23
+ @attr name ;
24
+ }
25
25
26
- const Pet = Model . extend ( {
27
- name : attr ( ) ,
28
- } ) ;
26
+ module ( 'integration/references/has-many' , function ( hooks ) {
27
+ setupRenderingTest ( hooks ) ;
29
28
29
+ hooks . beforeEach ( function ( ) {
30
30
this . owner . register ( 'model:family' , Family ) ;
31
31
this . owner . register ( 'model:person' , Person ) ;
32
32
this . owner . register ( 'model:pet' , Pet ) ;
33
33
34
- this . owner . register ( 'adapter:application' , Adapter . extend ( ) ) ;
35
- this . owner . register ( 'serializer:application' , class extends JSONAPISerializer { } ) ;
34
+ this . owner . register ( 'adapter:application' , Adapter ) ;
35
+ this . owner . register ( 'serializer:application' , JSONAPISerializer ) ;
36
36
} ) ;
37
37
38
38
testInDebug ( "record#hasMany asserts when specified relationship doesn't exist" , function ( assert ) {
@@ -93,6 +93,18 @@ module('integration/references/has-many', function (hooks) {
93
93
assert . deepEqual ( personsReference . ids ( ) , [ '1' , '2' ] ) ;
94
94
} ) ;
95
95
96
+ test ( 'ref.ids() updates when using createRecord' , async function ( assert ) {
97
+ const store = this . owner . lookup ( 'service:store' ) ;
98
+
99
+ const family = store . createRecord ( 'family' ) ;
100
+ const person1 = store . createRecord ( 'person' , { } ) ;
101
+ assert . strictEqual ( family . hasMany ( 'persons' ) . ids ( ) . length , 0 ) ;
102
+
103
+ family . persons = [ person1 ] ;
104
+
105
+ assert . strictEqual ( family . hasMany ( 'persons' ) . ids ( ) . length , 1 ) ;
106
+ } ) ;
107
+
96
108
test ( 'record#hasMany for linked references' , function ( assert ) {
97
109
const store = this . owner . lookup ( 'service:store' ) ;
98
110
0 commit comments