@@ -2,33 +2,33 @@ import { click, currentURL } from '@ember/test-helpers';
22import { module , test } from 'qunit' ;
33
44import percySnapshot from '@percy/ember' ;
5- import { Response } from 'miragejs ' ;
5+ import { http , HttpResponse } from 'msw ' ;
66
77import { setupApplicationTest } from 'crates-io/tests/helpers' ;
88
99import { visit } from '../helpers/visit-ignoring-abort' ;
1010
1111module ( 'Acceptance | /me/pending-invites' , function ( hooks ) {
12- setupApplicationTest ( hooks ) ;
12+ setupApplicationTest ( hooks , { msw : true } ) ;
1313
1414 function prepare ( context ) {
15- let inviter = context . server . create ( 'user' , { name : 'janed' } ) ;
16- let inviter2 = context . server . create ( 'user' , { name : 'wycats' } ) ;
15+ let inviter = context . db . user . create ( { name : 'janed' } ) ;
16+ let inviter2 = context . db . user . create ( { name : 'wycats' } ) ;
1717
18- let user = context . server . create ( 'user' ) ;
18+ let user = context . db . user . create ( ) ;
1919
20- let nanomsg = context . server . create ( 'crate' , { name : 'nanomsg' } ) ;
21- context . server . create ( 'version' , { crate : nanomsg } ) ;
22- context . server . create ( 'crate-owner-invitation' , {
20+ let nanomsg = context . db . crate . create ( { name : 'nanomsg' } ) ;
21+ context . db . version . create ( { crate : nanomsg } ) ;
22+ context . db . crateOwnerInvitation . create ( {
2323 crate : nanomsg ,
2424 createdAt : '2016-12-24T12:34:56Z' ,
2525 invitee : user ,
2626 inviter,
2727 } ) ;
2828
29- let ember = context . server . create ( 'crate' , { name : 'ember-rs' } ) ;
30- context . server . create ( 'version' , { crate : ember } ) ;
31- context . server . create ( 'crate-owner-invitation' , {
29+ let ember = context . db . crate . create ( { name : 'ember-rs' } ) ;
30+ context . db . version . create ( { crate : ember } ) ;
31+ context . db . crateOwnerInvitation . create ( {
3232 crate : ember ,
3333 createdAt : '2020-12-31T12:34:56Z' ,
3434 invitee : user ,
@@ -73,7 +73,7 @@ module('Acceptance | /me/pending-invites', function (hooks) {
7373 test ( 'shows empty list message' , async function ( assert ) {
7474 prepare ( this ) ;
7575
76- this . server . schema . crateOwnerInvitations . all ( ) . destroy ( ) ;
76+ this . db . crateOwnerInvitation . deleteMany ( { } ) ;
7777
7878 await visit ( '/me/pending-invites' ) ;
7979 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -84,9 +84,22 @@ module('Acceptance | /me/pending-invites', function (hooks) {
8484 test ( 'invites can be declined' , async function ( assert ) {
8585 let { nanomsg, user } = prepare ( this ) ;
8686
87- let { crateOwnerInvitations, crateOwnerships } = this . server . schema ;
88- assert . strictEqual ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 1 ) ;
89- assert . strictEqual ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
87+ let { crateOwnerInvitation, crateOwnership } = this . db ;
88+ let invites = crateOwnerInvitation . findMany ( {
89+ where : {
90+ crate : { id : { equals : nanomsg . id } } ,
91+ invitee : { id : { equals : user . id } } ,
92+ } ,
93+ } ) ;
94+ assert . strictEqual ( invites . length , 1 ) ;
95+
96+ let owners = crateOwnership . findMany ( {
97+ where : {
98+ crate : { id : { equals : nanomsg . id } } ,
99+ user : { id : { equals : user . id } } ,
100+ } ,
101+ } ) ;
102+ assert . strictEqual ( owners . length , 0 ) ;
90103
91104 await visit ( '/me/pending-invites' ) ;
92105 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -100,14 +113,28 @@ module('Acceptance | /me/pending-invites', function (hooks) {
100113 assert . dom ( '[data-test-invite="nanomsg"] [data-test-crate-link]' ) . doesNotExist ( ) ;
101114 assert . dom ( '[data-test-invite="nanomsg"] [data-test-inviter-link]' ) . doesNotExist ( ) ;
102115
103- assert . strictEqual ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 0 ) ;
104- assert . strictEqual ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
116+ invites = crateOwnerInvitation . findMany ( {
117+ where : {
118+ crate : { id : { equals : nanomsg . id } } ,
119+ invitee : { id : { equals : user . id } } ,
120+ } ,
121+ } ) ;
122+ assert . strictEqual ( invites . length , 0 ) ;
123+
124+ owners = crateOwnership . findMany ( {
125+ where : {
126+ crate : { id : { equals : nanomsg . id } } ,
127+ user : { id : { equals : user . id } } ,
128+ } ,
129+ } ) ;
130+ assert . strictEqual ( owners . length , 0 ) ;
105131 } ) ;
106132
107133 test ( 'error message is shown if decline request fails' , async function ( assert ) {
108134 prepare ( this ) ;
109135
110- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , ( ) => new Response ( 500 ) ) ;
136+ let error = HttpResponse . json ( { } , { status : 500 } ) ;
137+ this . worker . use ( http . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , ( ) => error ) ) ;
111138
112139 await visit ( '/me/pending-invites' ) ;
113140 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -121,9 +148,22 @@ module('Acceptance | /me/pending-invites', function (hooks) {
121148 test ( 'invites can be accepted' , async function ( assert ) {
122149 let { nanomsg, user } = prepare ( this ) ;
123150
124- let { crateOwnerInvitations, crateOwnerships } = this . server . schema ;
125- assert . strictEqual ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 1 ) ;
126- assert . strictEqual ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 0 ) ;
151+ let { crateOwnerInvitation, crateOwnership } = this . db ;
152+ let invites = crateOwnerInvitation . findMany ( {
153+ where : {
154+ crate : { id : { equals : nanomsg . id } } ,
155+ invitee : { id : { equals : user . id } } ,
156+ } ,
157+ } ) ;
158+ assert . strictEqual ( invites . length , 1 ) ;
159+
160+ let owners = crateOwnership . findMany ( {
161+ where : {
162+ crate : { id : { equals : nanomsg . id } } ,
163+ user : { id : { equals : user . id } } ,
164+ } ,
165+ } ) ;
166+ assert . strictEqual ( owners . length , 0 ) ;
127167
128168 await visit ( '/me/pending-invites' ) ;
129169 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -139,14 +179,28 @@ module('Acceptance | /me/pending-invites', function (hooks) {
139179
140180 await percySnapshot ( assert ) ;
141181
142- assert . strictEqual ( crateOwnerInvitations . where ( { crateId : nanomsg . id , inviteeId : user . id } ) . length , 0 ) ;
143- assert . strictEqual ( crateOwnerships . where ( { crateId : nanomsg . id , userId : user . id } ) . length , 1 ) ;
182+ invites = crateOwnerInvitation . findMany ( {
183+ where : {
184+ crate : { id : { equals : nanomsg . id } } ,
185+ invitee : { id : { equals : user . id } } ,
186+ } ,
187+ } ) ;
188+ assert . strictEqual ( invites . length , 0 ) ;
189+
190+ owners = crateOwnership . findMany ( {
191+ where : {
192+ crate : { id : { equals : nanomsg . id } } ,
193+ user : { id : { equals : user . id } } ,
194+ } ,
195+ } ) ;
196+ assert . strictEqual ( owners . length , 1 ) ;
144197 } ) ;
145198
146199 test ( 'error message is shown if accept request fails' , async function ( assert ) {
147200 prepare ( this ) ;
148201
149- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , ( ) => new Response ( 500 ) ) ;
202+ let error = HttpResponse . json ( { } , { status : 500 } ) ;
203+ this . worker . use ( http . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , ( ) => error ) ) ;
150204
151205 await visit ( '/me/pending-invites' ) ;
152206 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
@@ -162,8 +216,8 @@ module('Acceptance | /me/pending-invites', function (hooks) {
162216
163217 let errorMessage =
164218 '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.' ;
165- let payload = { errors : [ { detail : errorMessage } ] } ;
166- this . server . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , payload , 410 ) ;
219+ let error = HttpResponse . json ( { errors : [ { detail : errorMessage } ] } , { status : 410 } ) ;
220+ this . worker . use ( http . put ( '/api/v1/me/crate_owner_invitations/:crate_id' , ( ) => error ) ) ;
167221
168222 await visit ( '/me/pending-invites' ) ;
169223 assert . strictEqual ( currentURL ( ) , '/me/pending-invites' ) ;
0 commit comments