@@ -5,6 +5,101 @@ import fetch from 'fetch';
5
5
import { setupTest } from '../../../helpers' ;
6
6
import setupMirage from '../../../helpers/setup-mirage' ;
7
7
8
+ module ( 'Mirage | GET /api/v1/me/crate_owner_invitations' , function ( hooks ) {
9
+ setupTest ( hooks ) ;
10
+ setupMirage ( hooks ) ;
11
+
12
+ test ( 'empty case' , async function ( assert ) {
13
+ let user = this . server . create ( 'user' ) ;
14
+ this . server . create ( 'mirage-session' , { user } ) ;
15
+
16
+ let response = await fetch ( '/api/v1/me/crate_owner_invitations' ) ;
17
+ assert . equal ( response . status , 200 ) ;
18
+ assert . deepEqual ( await response . json ( ) , { crate_owner_invitations : [ ] } ) ;
19
+ } ) ;
20
+
21
+ test ( 'returns the list of invitations for the authenticated user' , async function ( assert ) {
22
+ let nanomsg = this . server . create ( 'crate' , { name : 'nanomsg' } ) ;
23
+ this . server . create ( 'version' , { crate : nanomsg } ) ;
24
+
25
+ let ember = this . server . create ( 'crate' , { name : 'ember-rs' } ) ;
26
+ this . server . create ( 'version' , { crate : ember } ) ;
27
+
28
+ let user = this . server . create ( 'user' ) ;
29
+ this . server . create ( 'mirage-session' , { user } ) ;
30
+
31
+ let inviter = this . server . create ( 'user' , { name : 'janed' } ) ;
32
+ this . server . create ( 'crate-owner-invitation' , {
33
+ crate : nanomsg ,
34
+ createdAt : '2016-12-24T12:34:56Z' ,
35
+ invitee : user ,
36
+ inviter,
37
+ } ) ;
38
+
39
+ let inviter2 = this . server . create ( 'user' , { name : 'wycats' } ) ;
40
+ this . server . create ( 'crate-owner-invitation' , {
41
+ crate : ember ,
42
+ createdAt : '2020-12-31T12:34:56Z' ,
43
+ invitee : user ,
44
+ inviter : inviter2 ,
45
+ } ) ;
46
+
47
+ let response = await fetch ( '/api/private/crate_owner_invitations' ) ;
48
+ assert . equal ( response . status , 200 ) ;
49
+ assert . deepEqual ( await response . json ( ) , {
50
+ crate_owner_invitations : [
51
+ {
52
+ crate_id : Number ( nanomsg . id ) ,
53
+ crate_name : 'nanomsg' ,
54
+ created_at : '2016-12-24T12:34:56Z' ,
55
+ invited_by_username : 'janed' ,
56
+ invitee_id : Number ( user . id ) ,
57
+ inviter_id : Number ( inviter . id ) ,
58
+ } ,
59
+ {
60
+ crate_id : Number ( ember . id ) ,
61
+ crate_name : 'ember-rs' ,
62
+ created_at : '2020-12-31T12:34:56Z' ,
63
+ invited_by_username : 'wycats' ,
64
+ invitee_id : Number ( user . id ) ,
65
+ inviter_id : Number ( inviter2 . id ) ,
66
+ } ,
67
+ ] ,
68
+ users : [
69
+ {
70
+ avatar : user . avatar ,
71
+ id : Number ( user . id ) ,
72
+ login : user . login ,
73
+ name : user . name ,
74
+ url : user . url ,
75
+ } ,
76
+ {
77
+ avatar : 'https://avatars1.githubusercontent.com/u/14631425?v=4' ,
78
+ id : Number ( inviter . id ) ,
79
+ login : 'janed' ,
80
+ name : 'janed' ,
81
+ url : 'https://github.com/janed' ,
82
+ } ,
83
+ {
84
+ avatar : 'https://avatars1.githubusercontent.com/u/14631425?v=4' ,
85
+ id : Number ( inviter2 . id ) ,
86
+ login : 'wycats' ,
87
+ name : 'wycats' ,
88
+ url : 'https://github.com/wycats' ,
89
+ } ,
90
+ ] ,
91
+ } ) ;
92
+ } ) ;
93
+
94
+ test ( 'returns an error if unauthenticated' , async function ( assert ) {
95
+ let response = await fetch ( '/api/private/crate_owner_invitations' ) ;
96
+ assert . equal ( response . status , 403 ) ;
97
+ assert . deepEqual ( await response . json ( ) , {
98
+ errors : [ { detail : 'must be logged in to perform that action' } ] ,
99
+ } ) ;
100
+ } ) ;
101
+ } ) ;
102
+
8
103
module ( 'Mirage | GET /api/private/crate_owner_invitations' , function ( hooks ) {
9
104
setupTest ( hooks ) ;
10
105
setupMirage ( hooks ) ;
0 commit comments