2
2
3
3
const
4
4
oz = require ( 'oz' ) ,
5
- apps = require ( '../../../../data/auth/apps' ) ;
5
+ hoek = require ( 'hoek' ) ,
6
+ apps = require ( '../../../../data/auth/apps' ) ,
7
+ grants = require ( '../../../../data/auth/grants' ) ;
6
8
7
- function getOzTicket ( callback ) {
9
+ function makeOzRequest ( requestDetails , appDetails , callback ) {
8
10
const
9
- url = `http://example.com/oz/app` ,
10
11
method = 'POST' ,
11
- appTicket = apps . foo ;
12
+ url = `http://example.com ${ requestDetails . endpoint } ` ;
12
13
13
14
this . requestTo (
14
15
{
15
16
url,
16
17
method,
17
18
headers : {
18
- authorization : oz . client . header ( url , method , appTicket ) . field
19
- }
19
+ authorization : oz . client . header ( url , method , appDetails ) . field
20
+ } ,
21
+ payload : requestDetails . payload
20
22
} ,
21
23
( ) => {
24
+ //console.log(this.getResponseBody());
22
25
assert . equals ( this . getResponseStatus ( ) , 200 ) ;
23
26
24
- callback ( ) ;
27
+ callback ( null , this . serverResponse . result . entity ) ;
25
28
}
26
29
) ;
27
30
}
28
31
32
+ function requestAppTicket ( appDetails , callback ) {
33
+ makeOzRequest . call ( this , { endpoint : '/oz/app' } , appDetails , callback ) ;
34
+ }
35
+
36
+ function simulateUserGettingRsvpByGrantingScopes ( callback ) {
37
+ oz . ticket . rsvp ( apps . foo , grants [ 0 ] , 'password' , { } , callback ) ;
38
+ }
39
+
40
+ function exchangeRsvpForUserTicket ( appTicket , rsvp , callback ) {
41
+ makeOzRequest . call ( this , {
42
+ endpoint : '/oz/rsvp' ,
43
+ payload : JSON . stringify ( { rsvp} )
44
+ } , appTicket , callback ) ;
45
+ }
46
+
47
+ function getUserTicket ( callback ) {
48
+ requestAppTicket . call ( this , apps . foo , ( err , appTicket ) => {
49
+ hoek . assert ( ! err , err ) ;
50
+
51
+ simulateUserGettingRsvpByGrantingScopes . call ( this , ( err , rsvp ) => {
52
+ hoek . assert ( ! err , err ) ;
53
+
54
+ exchangeRsvpForUserTicket . call ( this , appTicket , rsvp , callback ) ;
55
+ } ) ;
56
+ } ) ;
57
+ }
58
+
29
59
module . exports = function ( ) {
30
60
this . World = require ( '../support/world.js' ) . World ;
31
61
@@ -34,6 +64,6 @@ module.exports = function () {
34
64
} ) ;
35
65
36
66
this . Given ( / ^ r e q u e s t i n c l u d e s o z t i c k e t $ / , function ( callback ) {
37
- getOzTicket . call ( this , callback ) ;
67
+ getUserTicket . call ( this , callback ) ;
38
68
} ) ;
39
69
} ;
0 commit comments