@@ -36,17 +36,35 @@ describe('Oauth Flows Object', () => {
36
36
expect ( parseResult ) . to . contain . warning ( "'Oauth Flows Object' 'implicit' is missing required property 'authorizationUrl'" ) ;
37
37
} ) ;
38
38
39
- it . skip ( 'parses correctly' , ( ) => {
39
+ it ( 'parses correctly' , ( ) => {
40
40
const oauthFlows = new namespace . elements . Object ( {
41
41
implicit : {
42
- authorizationUrl : '/authorize ' ,
42
+ authorizationUrl : '/authorization ' ,
43
43
scopes : { } ,
44
44
} ,
45
45
} ) ;
46
46
47
47
const parseResult = parse ( context , oauthFlows ) ;
48
- console . log ( JSON . stringify ( parseResult , null , 2 ) ) ;
48
+
49
49
expect ( parseResult . length ) . to . equal ( 1 ) ;
50
+ expect ( parseResult . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Array ) ;
51
+ expect ( parseResult . get ( 0 ) . length ) . to . equal ( 1 ) ;
52
+
53
+ const flow = parseResult . get ( 0 ) . get ( 0 ) ;
54
+
55
+ expect ( flow ) . to . be . instanceof ( namespace . elements . Array ) ;
56
+ expect ( flow . length ) . to . equal ( 3 ) ;
57
+
58
+ expect ( flow . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
59
+ expect ( flow . get ( 0 ) . key . toValue ( ) ) . to . equal ( 'grantType' ) ;
60
+ expect ( flow . get ( 0 ) . value . toValue ( ) ) . to . equal ( 'implicit' ) ;
61
+
62
+ expect ( flow . get ( 1 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
63
+ expect ( flow . get ( 1 ) . key . toValue ( ) ) . to . equal ( 'scopes' ) ;
64
+ expect ( flow . get ( 1 ) . value ) . to . be . instanceof ( namespace . elements . Array ) ;
65
+
66
+ expect ( flow . get ( 2 ) ) . to . be . instanceof ( namespace . elements . Transition ) ;
67
+ expect ( flow . get ( 2 ) . href . toValue ( ) ) . to . equal ( '/authorization' ) ;
50
68
} ) ;
51
69
} ) ;
52
70
@@ -65,6 +83,37 @@ describe('Oauth Flows Object', () => {
65
83
expect ( parseResult . get ( 0 ) . length ) . to . equal ( 0 ) ;
66
84
expect ( parseResult ) . to . contain . warning ( "'Oauth Flows Object' 'password' is missing required property 'tokenUrl'" ) ;
67
85
} ) ;
86
+
87
+ it ( 'parses correctly' , ( ) => {
88
+ const oauthFlows = new namespace . elements . Object ( {
89
+ password : {
90
+ tokenUrl : '/token' ,
91
+ scopes : { } ,
92
+ } ,
93
+ } ) ;
94
+
95
+ const parseResult = parse ( context , oauthFlows ) ;
96
+
97
+ expect ( parseResult . length ) . to . equal ( 1 ) ;
98
+ expect ( parseResult . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Array ) ;
99
+ expect ( parseResult . get ( 0 ) . length ) . to . equal ( 1 ) ;
100
+
101
+ const flow = parseResult . get ( 0 ) . get ( 0 ) ;
102
+
103
+ expect ( flow ) . to . be . instanceof ( namespace . elements . Array ) ;
104
+ expect ( flow . length ) . to . equal ( 3 ) ;
105
+
106
+ expect ( flow . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
107
+ expect ( flow . get ( 0 ) . key . toValue ( ) ) . to . equal ( 'grantType' ) ;
108
+ expect ( flow . get ( 0 ) . value . toValue ( ) ) . to . equal ( 'resource owner password credentials' ) ;
109
+
110
+ expect ( flow . get ( 1 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
111
+ expect ( flow . get ( 1 ) . key . toValue ( ) ) . to . equal ( 'scopes' ) ;
112
+ expect ( flow . get ( 1 ) . value ) . to . be . instanceof ( namespace . elements . Array ) ;
113
+
114
+ expect ( flow . get ( 2 ) ) . to . be . instanceof ( namespace . elements . Transition ) ;
115
+ expect ( flow . get ( 2 ) . href . toValue ( ) ) . to . equal ( '/token' ) ;
116
+ } ) ;
68
117
} ) ;
69
118
70
119
describe ( '#clientCredentials' , ( ) => {
@@ -82,6 +131,37 @@ describe('Oauth Flows Object', () => {
82
131
expect ( parseResult . get ( 0 ) . length ) . to . equal ( 0 ) ;
83
132
expect ( parseResult ) . to . contain . warning ( "'Oauth Flows Object' 'clientCredentials' is missing required property 'tokenUrl'" ) ;
84
133
} ) ;
134
+
135
+ it ( 'parses correctly' , ( ) => {
136
+ const oauthFlows = new namespace . elements . Object ( {
137
+ clientCredentials : {
138
+ tokenUrl : '/token' ,
139
+ scopes : { } ,
140
+ } ,
141
+ } ) ;
142
+
143
+ const parseResult = parse ( context , oauthFlows ) ;
144
+
145
+ expect ( parseResult . length ) . to . equal ( 1 ) ;
146
+ expect ( parseResult . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Array ) ;
147
+ expect ( parseResult . get ( 0 ) . length ) . to . equal ( 1 ) ;
148
+
149
+ const flow = parseResult . get ( 0 ) . get ( 0 ) ;
150
+
151
+ expect ( flow ) . to . be . instanceof ( namespace . elements . Array ) ;
152
+ expect ( flow . length ) . to . equal ( 3 ) ;
153
+
154
+ expect ( flow . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
155
+ expect ( flow . get ( 0 ) . key . toValue ( ) ) . to . equal ( 'grantType' ) ;
156
+ expect ( flow . get ( 0 ) . value . toValue ( ) ) . to . equal ( 'client credentials' ) ;
157
+
158
+ expect ( flow . get ( 1 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
159
+ expect ( flow . get ( 1 ) . key . toValue ( ) ) . to . equal ( 'scopes' ) ;
160
+ expect ( flow . get ( 1 ) . value ) . to . be . instanceof ( namespace . elements . Array ) ;
161
+
162
+ expect ( flow . get ( 2 ) ) . to . be . instanceof ( namespace . elements . Transition ) ;
163
+ expect ( flow . get ( 2 ) . href . toValue ( ) ) . to . equal ( '/token' ) ;
164
+ } ) ;
85
165
} ) ;
86
166
87
167
describe ( '#authorizationCode' , ( ) => {
@@ -103,7 +183,7 @@ describe('Oauth Flows Object', () => {
103
183
it ( 'provides warning when no tokenUrl' , ( ) => {
104
184
const oauthFlows = new namespace . elements . Object ( {
105
185
authorizationCode : {
106
- authorizationUrl : '/authorize ' ,
186
+ authorizationUrl : '/authorization ' ,
107
187
scopes : { } ,
108
188
} ,
109
189
} ) ;
@@ -115,9 +195,71 @@ describe('Oauth Flows Object', () => {
115
195
expect ( parseResult . get ( 0 ) . length ) . to . equal ( 0 ) ;
116
196
expect ( parseResult ) . to . contain . warning ( "'Oauth Flows Object' 'authorizationCode' is missing required property 'tokenUrl'" ) ;
117
197
} ) ;
198
+
199
+ it ( 'parses correctly' , ( ) => {
200
+ const oauthFlows = new namespace . elements . Object ( {
201
+ authorizationCode : {
202
+ authorizationUrl : '/authorization' ,
203
+ tokenUrl : '/token' ,
204
+ scopes : { } ,
205
+ } ,
206
+ } ) ;
207
+
208
+ const parseResult = parse ( context , oauthFlows ) ;
209
+
210
+ expect ( parseResult . length ) . to . equal ( 1 ) ;
211
+ expect ( parseResult . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Array ) ;
212
+ expect ( parseResult . get ( 0 ) . length ) . to . equal ( 1 ) ;
213
+
214
+ const flow = parseResult . get ( 0 ) . get ( 0 ) ;
215
+
216
+ expect ( flow ) . to . be . instanceof ( namespace . elements . Array ) ;
217
+ expect ( flow . length ) . to . equal ( 4 ) ;
218
+
219
+ expect ( flow . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
220
+ expect ( flow . get ( 0 ) . key . toValue ( ) ) . to . equal ( 'grantType' ) ;
221
+ expect ( flow . get ( 0 ) . value . toValue ( ) ) . to . equal ( 'authorization code' ) ;
222
+
223
+ expect ( flow . get ( 1 ) ) . to . be . instanceof ( namespace . elements . Member ) ;
224
+ expect ( flow . get ( 1 ) . key . toValue ( ) ) . to . equal ( 'scopes' ) ;
225
+ expect ( flow . get ( 1 ) . value ) . to . be . instanceof ( namespace . elements . Array ) ;
226
+
227
+ expect ( flow . get ( 2 ) ) . to . be . instanceof ( namespace . elements . Transition ) ;
228
+ expect ( flow . get ( 2 ) . href . toValue ( ) ) . to . equal ( '/authorization' ) ;
229
+
230
+ expect ( flow . get ( 3 ) ) . to . be . instanceof ( namespace . elements . Transition ) ;
231
+ expect ( flow . get ( 3 ) . href . toValue ( ) ) . to . equal ( '/token' ) ;
232
+ } ) ;
118
233
} ) ;
119
234
120
- // TODO: Multiple flows
235
+ it ( 'parses multiple flows correctly' , ( ) => {
236
+ const oauthFlows = new namespace . elements . Object ( {
237
+ implicit : {
238
+ authorizationUrl : '/authorization' ,
239
+ scopes : { } ,
240
+ } ,
241
+ password : {
242
+ tokenUrl : '/token' ,
243
+ scopes : { } ,
244
+ } ,
245
+ } ) ;
246
+
247
+ const parseResult = parse ( context , oauthFlows ) ;
248
+
249
+ expect ( parseResult . length ) . to . equal ( 1 ) ;
250
+ expect ( parseResult . get ( 0 ) ) . to . be . instanceof ( namespace . elements . Array ) ;
251
+ expect ( parseResult . get ( 0 ) . length ) . to . equal ( 2 ) ;
252
+
253
+ const implicitFlow = parseResult . get ( 0 ) . get ( 0 ) ;
254
+
255
+ expect ( implicitFlow ) . to . be . instanceof ( namespace . elements . Array ) ;
256
+ expect ( implicitFlow . length ) . to . equal ( 3 ) ;
257
+
258
+ const passwordFlow = parseResult . get ( 0 ) . get ( 1 ) ;
259
+
260
+ expect ( passwordFlow ) . to . be . instanceof ( namespace . elements . Array ) ;
261
+ expect ( passwordFlow . length ) . to . equal ( 3 ) ;
262
+ } ) ;
121
263
122
264
it ( 'provides warning for invalid keys' , ( ) => {
123
265
const oauthFlows = new namespace . elements . Object ( {
0 commit comments