@@ -12,36 +12,32 @@ module('Acceptance | /me/pending-invites', function (hooks) {
12
12
setupApplicationTest ( hooks ) ;
13
13
14
14
function prepare ( context ) {
15
- let user = context . server . create ( 'user' ) ;
16
- context . authenticateAs ( user ) ;
17
-
18
15
let inviter = context . server . create ( 'user' , { name : 'janed' } ) ;
19
16
let inviter2 = context . server . create ( 'user' , { name : 'wycats' } ) ;
20
- context . server . get ( '/api/v1/me/crate_owner_invitations' , function ( ) {
21
- let users = [ this . serialize ( inviter , 'user' ) . user , this . serialize ( inviter2 , 'user' ) . user ] ;
22
-
23
- return {
24
- crate_owner_invitations : [
25
- {
26
- invited_by_username : 'janed' ,
27
- crate_name : 'nanomsg' ,
28
- crate_id : 42 ,
29
- created_at : '2016-12-24T12:34:56Z' ,
30
- invitee_id : parseInt ( user . id , 10 ) ,
31
- inviter_id : parseInt ( inviter . id , 10 ) ,
32
- } ,
33
- {
34
- invited_by_username : 'wycats' ,
35
- crate_name : 'ember-rs' ,
36
- crate_id : 1 ,
37
- created_at : '2020-12-31T12:34:56Z' ,
38
- invitee_id : parseInt ( user . id , 10 ) ,
39
- inviter_id : parseInt ( inviter2 . id , 10 ) ,
40
- } ,
41
- ] ,
42
- users,
43
- } ;
17
+
18
+ let user = context . server . create ( 'user' ) ;
19
+
20
+ let nanomsg = context . server . create ( 'crate' , { name : 'nanomsg' } ) ;
21
+ context . server . create ( 'version' , { crate : nanomsg } ) ;
22
+ context . server . create ( 'crate-owner-invitation' , {
23
+ crate : nanomsg ,
24
+ createdAt : '2016-12-24T12:34:56Z' ,
25
+ invitee : user ,
26
+ inviter,
44
27
} ) ;
28
+
29
+ let ember = context . server . create ( 'crate' , { name : 'ember-rs' } ) ;
30
+ context . server . create ( 'version' , { crate : ember } ) ;
31
+ context . server . create ( 'crate-owner-invitation' , {
32
+ crate : ember ,
33
+ createdAt : '2020-12-31T12:34:56Z' ,
34
+ invitee : user ,
35
+ inviter : inviter2 ,
36
+ } ) ;
37
+
38
+ context . authenticateAs ( user ) ;
39
+
40
+ return { nanomsg, user } ;
45
41
}
46
42
47
43
test ( 'redirects to / when not logged in' , async function ( assert ) {
@@ -76,7 +72,7 @@ module('Acceptance | /me/pending-invites', function (hooks) {
76
72
test ( 'shows empty list message' , async function ( assert ) {
77
73
prepare ( this ) ;
78
74
79
- this . server . get ( '/api/v1/me/crate_owner_invitations' , { crate_owner_invitations : [ ] } ) ;
75
+ this . server . schema . crateOwnerInvitations . all ( ) . destroy ( ) ;
80
76
81
77
await visit ( '/me/pending-invites' ) ;
82
78
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -85,19 +81,11 @@ module('Acceptance | /me/pending-invites', function (hooks) {
85
81
} ) ;
86
82
87
83
test ( 'invites can be declined' , async function ( assert ) {
88
- assert . expect ( 9 ) ;
84
+ let { nanomsg , user } = prepare ( this ) ;
89
85
90
- prepare ( this ) ;
91
-
92
- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate' , ( schema , request ) => {
93
- assert . deepEqual ( request . params , { crate : '42' } ) ;
94
-
95
- let body = JSON . parse ( request . requestBody ) ;
96
- assert . strictEqual ( body . crate_owner_invite . accepted , false ) ;
97
- assert . strictEqual ( body . crate_owner_invite . crate_id , 42 ) ;
98
-
99
- return { crate_owner_invitation : { crate_id : 42 , accepted : false } } ;
100
- } ) ;
86
+ let { crateOwnerInvitations, crateOwnerships } = this . server . schema ;
87
+ assert . equal ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 1 ) ;
88
+ assert . equal ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
101
89
102
90
await visit ( '/me/pending-invites' ) ;
103
91
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -110,12 +98,15 @@ module('Acceptance | /me/pending-invites', function (hooks) {
110
98
. hasText ( 'Declined. You have not been added as an owner of crate nanomsg.' ) ;
111
99
assert . dom ( '[data-test-invite="nanomsg"] [data-test-crate-link]' ) . doesNotExist ( ) ;
112
100
assert . dom ( '[data-test-invite="nanomsg"] [data-test-inviter-link]' ) . doesNotExist ( ) ;
101
+
102
+ assert . equal ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 0 ) ;
103
+ assert . equal ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
113
104
} ) ;
114
105
115
106
test ( 'error message is shown if decline request fails' , async function ( assert ) {
116
107
prepare ( this ) ;
117
108
118
- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate ' , ( ) => new Response ( 500 ) ) ;
109
+ this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id ' , ( ) => new Response ( 500 ) ) ;
119
110
120
111
await visit ( '/me/pending-invites' ) ;
121
112
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -127,19 +118,11 @@ module('Acceptance | /me/pending-invites', function (hooks) {
127
118
} ) ;
128
119
129
120
test ( 'invites can be accepted' , async function ( assert ) {
130
- assert . expect ( 9 ) ;
121
+ let { nanomsg , user } = prepare ( this ) ;
131
122
132
- prepare ( this ) ;
133
-
134
- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate' , ( schema , request ) => {
135
- assert . deepEqual ( request . params , { crate : '42' } ) ;
136
-
137
- let body = JSON . parse ( request . requestBody ) ;
138
- assert . strictEqual ( body . crate_owner_invite . accepted , true ) ;
139
- assert . strictEqual ( body . crate_owner_invite . crate_id , 42 ) ;
140
-
141
- return { crate_owner_invitation : { crate_id : 42 , accepted : true } } ;
142
- } ) ;
123
+ let { crateOwnerInvitations, crateOwnerships } = this . server . schema ;
124
+ assert . equal ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 1 ) ;
125
+ assert . equal ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
143
126
144
127
await visit ( '/me/pending-invites' ) ;
145
128
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -154,12 +137,15 @@ module('Acceptance | /me/pending-invites', function (hooks) {
154
137
assert . dom ( '[data-test-invite="nanomsg"] [data-test-inviter-link]' ) . doesNotExist ( ) ;
155
138
156
139
await percySnapshot ( assert ) ;
140
+
141
+ assert . equal ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 0 ) ;
142
+ assert . equal ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 1 ) ;
157
143
} ) ;
158
144
159
145
test ( 'error message is shown if accept request fails' , async function ( assert ) {
160
146
prepare ( this ) ;
161
147
162
- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate ' , ( ) => new Response ( 500 ) ) ;
148
+ this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id ' , ( ) => new Response ( 500 ) ) ;
163
149
164
150
await visit ( '/me/pending-invites' ) ;
165
151
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -176,7 +162,7 @@ module('Acceptance | /me/pending-invites', function (hooks) {
176
162
let errorMessage =
177
163
'The invitation to become an owner of the demo_crate crate expired. Please reach out to an owner of the crate to request a new invitation.' ;
178
164
let payload = { errors : [ { detail : errorMessage } ] } ;
179
- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate ' , payload , 410 ) ;
165
+ this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id ' , payload , 410 ) ;
180
166
181
167
await visit ( '/me/pending-invites' ) ;
182
168
assert . equal ( currentURL ( ) , '/me/pending-invites' ) ;
0 commit comments