@@ -7,10 +7,21 @@ describe("AccessToken", function () {
7
7
var accountSid = "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
8
8
var keySid = "SKb5aed9ca12bf5890f37930e63cad6d38" ;
9
9
10
+ function getToken ( ) {
11
+ return new twilio . jwt . AccessToken ( accountSid , keySid , "secret" , {
12
+
13
+ } ) ;
14
+ }
15
+
10
16
describe ( "constructor" , function ( ) {
11
17
var initWithoutIndex = function ( index ) {
12
18
return function ( ) {
13
- var constructorArgs = [ accountSid , keySid , "secret" ] ;
19
+ var constructorArgs = [
20
+ accountSid ,
21
+ keySid ,
22
+ "secret" ,
23
+ { identity : "foo" } ,
24
+ ] ;
14
25
constructorArgs [ index ] = undefined ;
15
26
16
27
// add context
@@ -30,6 +41,11 @@ describe("AccessToken", function () {
30
41
it ( "should require secret" , function ( ) {
31
42
expect ( initWithoutIndex ( 2 ) ) . toThrow ( new Error ( "secret is required" ) ) ;
32
43
} ) ;
44
+ it ( "should require identity" , function ( ) {
45
+ expect ( initWithoutIndex ( 3 ) ) . toThrow (
46
+ new Error ( "identity is required to be specified in options" )
47
+ ) ;
48
+ } ) ;
33
49
it ( "should convert identity from integer to string" , function ( ) {
34
50
var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" , {
35
51
identity : 4444 ,
@@ -41,22 +57,18 @@ describe("AccessToken", function () {
41
57
42
58
describe ( "generate" , function ( ) {
43
59
describe ( "home region" , function ( ) {
44
- var secret = "aTBl1PhJnykIjWll4TOiXKtD1ugxiz6f" ;
45
-
46
60
it ( "should add twr header when region is provided" , function ( ) {
47
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , secret , {
48
- region : "foo" ,
49
- } ) ;
61
+ var token = getToken ( ) ;
62
+ token . region = "foo" ;
50
63
var decoded = jwt . decode ( token . toJwt ( ) , { complete : true } ) ;
51
64
52
65
expect ( decoded . header . twr ) . toBe ( "foo" ) ;
53
66
} ) ;
54
67
55
68
[ "" , undefined , null , { } , 1 , 0 ] . forEach ( function ( value ) {
56
69
it ( "should not add twr header if region is " + value , function ( ) {
57
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , secret , {
58
- region : value ,
59
- } ) ;
70
+ var token = getToken ( ) ;
71
+ token . region = value ;
60
72
var decoded = jwt . decode ( token . toJwt ( ) , { complete : true } ) ;
61
73
62
74
expect ( decoded . header . twr ) . toBe ( undefined ) ;
@@ -68,7 +80,8 @@ describe("AccessToken", function () {
68
80
var token = new twilio . jwt . AccessToken (
69
81
accountSid ,
70
82
keySid ,
71
- "aTBl1PhJnykIjWll4TOiXKtD1ugxiz6f"
83
+ "aTBl1PhJnykIjWll4TOiXKtD1ugxiz6f" ,
84
+ { identity : "foo" }
72
85
) ;
73
86
var decoded = jwt . decode ( token . toJwt ( ) , { complete : true } ) ;
74
87
@@ -81,7 +94,7 @@ describe("AccessToken", function () {
81
94
82
95
it ( "should accept different algorithms" , function ( ) {
83
96
var validateAlg = function ( alg ) {
84
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
97
+ var token = getToken ( ) ;
85
98
var decoded = jwt . decode ( token . toJwt ( alg ) , {
86
99
complete : true ,
87
100
algorithms : twilio . jwt . AccessToken . ALGORITHMS ,
@@ -97,7 +110,8 @@ describe("AccessToken", function () {
97
110
it ( "should throw on invalid algorithm" , function ( ) {
98
111
var generateWithAlg = function ( alg ) {
99
112
return function ( ) {
100
- new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) . toJwt ( alg ) ;
113
+ var token = getToken ( ) ;
114
+ token . toJwt ( alg ) ;
101
115
} ;
102
116
} ;
103
117
@@ -109,9 +123,7 @@ describe("AccessToken", function () {
109
123
} ) ;
110
124
111
125
it ( "should create a token without any grants" , function ( ) {
112
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
113
- token . identity = "[email protected] " ;
114
-
126
+ var token = getToken ( ) ;
115
127
var decoded = jwt . verify ( token . toJwt ( ) , "secret" ) ;
116
128
expect ( decoded . jti . indexOf ( keySid ) ) . toBe ( 0 ) ;
117
129
expect ( decoded . iss ) . toBe ( keySid ) ;
@@ -123,11 +135,9 @@ describe("AccessToken", function () {
123
135
} ) ;
124
136
125
137
it ( "should accept nbf" , function ( ) {
138
+ var token = getToken ( ) ;
126
139
var nbf = Math . floor ( Date . now ( ) / 1000 ) ;
127
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" , {
128
- nbf : nbf ,
129
- } ) ;
130
- token . identity = "[email protected] " ;
140
+ token . nbf = nbf ;
131
141
132
142
var decoded = jwt . verify ( token . toJwt ( ) , "secret" ) ;
133
143
expect ( decoded . jti . indexOf ( keySid ) ) . toBe ( 0 ) ;
@@ -144,18 +154,15 @@ describe("AccessToken", function () {
144
154
} ) ;
145
155
146
156
it ( "should accept user defined ttl" , function ( ) {
147
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
157
+ var token = getToken ( ) ;
148
158
token . ttl = 100 ;
149
- token . identity = "[email protected] " ;
150
159
151
160
var decoded = jwt . verify ( token . toJwt ( ) , "secret" ) ;
152
161
expect ( decoded . exp - decoded . iat ) . toBe ( 100 ) ;
153
162
} ) ;
154
163
155
164
it ( "should create token with chat grant" , function ( ) {
156
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
157
- token . identity = "[email protected] " ;
158
-
165
+ var token = getToken ( ) ;
159
166
var grant = new twilio . jwt . AccessToken . ChatGrant ( ) ;
160
167
grant . serviceSid = "SRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
161
168
grant . endpointId = "endpointId" ;
@@ -176,9 +183,7 @@ describe("AccessToken", function () {
176
183
} ) ;
177
184
178
185
it ( "should create token with video grant" , function ( ) {
179
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
180
- token . identity = "[email protected] " ;
181
-
186
+ var token = getToken ( ) ;
182
187
var grant = new twilio . jwt . AccessToken . VideoGrant ( ) ;
183
188
grant . room = "room" ;
184
189
token . addGrant ( grant ) ;
@@ -193,9 +198,7 @@ describe("AccessToken", function () {
193
198
} ) ;
194
199
195
200
it ( "should create token with sync grant" , function ( ) {
196
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
197
- token . identity = "[email protected] " ;
198
-
201
+ var token = getToken ( ) ;
199
202
var grant = new twilio . jwt . AccessToken . SyncGrant ( ) ;
200
203
grant . serviceSid = "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
201
204
grant . endpointId = "endpointId" ;
@@ -212,9 +215,7 @@ describe("AccessToken", function () {
212
215
} ) ;
213
216
214
217
it ( "should create token with taskrouter grant" , function ( ) {
215
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
216
- token . identity = "[email protected] " ;
217
-
218
+ var token = getToken ( ) ;
218
219
var grant = new twilio . jwt . AccessToken . TaskRouterGrant ( ) ;
219
220
grant . workspaceSid = "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ;
220
221
grant . workerSid = "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ;
@@ -233,9 +234,7 @@ describe("AccessToken", function () {
233
234
} ) ;
234
235
235
236
it ( "should create token with playback grant" , function ( ) {
236
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
237
- token . identity = "[email protected] " ;
238
-
237
+ var token = getToken ( ) ;
239
238
var playbackGrant = {
240
239
requestCredentials : null ,
241
240
playbackUrl :
@@ -255,9 +254,7 @@ describe("AccessToken", function () {
255
254
} ) ;
256
255
257
256
it ( "should create token with multiple grants" , function ( ) {
258
- var token = new twilio . jwt . AccessToken ( accountSid , keySid , "secret" ) ;
259
- token . identity = "[email protected] " ;
260
-
257
+ var token = getToken ( ) ;
261
258
var grant = new twilio . jwt . AccessToken . ChatGrant ( ) ;
262
259
grant . serviceSid = "SRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
263
260
grant . endpointId = "endpointId" ;
0 commit comments