1
1
import JWT
2
2
import JWTKit
3
3
import Testing
4
- import XCTVapor
4
+ import VaporTesting
5
5
6
6
@Suite ( " JWTTests " )
7
7
struct JWTTests {
@@ -128,14 +128,14 @@ struct JWTTests {
128
128
var token : String ?
129
129
130
130
// test login
131
- try await app. testable ( ) . test (
131
+ try await app. testing ( ) . test (
132
132
. POST, " login " ,
133
133
beforeRequest: { req in
134
134
try req. content. encode ( LoginCredentials ( name: " foo " ) )
135
135
} ,
136
136
afterResponse: { res async throws in
137
137
#expect( res. status == . ok)
138
- XCTAssertContent ( LoginResponse . self, res) { login in
138
+ expectContent ( LoginResponse . self, res) { login in
139
139
token = login. token
140
140
}
141
141
}
@@ -147,7 +147,7 @@ struct JWTTests {
147
147
}
148
148
149
149
// test manual authentication using req.jwt.verify
150
- try await app. testable ( ) . test (
150
+ try await app. testing ( ) . test (
151
151
. GET, " me " , headers: [ " authorization " : " Bearer \( t) " ]
152
152
) { res async in
153
153
#expect( res. status == . ok)
@@ -157,7 +157,7 @@ struct JWTTests {
157
157
// create a token from a different signer
158
158
let fakeToken = try await JWTKeyCollection ( )
159
159
. add ( ecdsa: ES512PrivateKey ( ) ) . sign ( TestUser ( name: " bob " ) )
160
- try await app. testable ( ) . test (
160
+ try await app. testing ( ) . test (
161
161
. GET, " me " , headers: [ " authorization " : " Bearer \( fakeToken) " ]
162
162
) { res async in
163
163
#expect( res. status == . unauthorized)
@@ -197,14 +197,14 @@ struct JWTTests {
197
197
var token : String ?
198
198
199
199
// test login
200
- try await app. testable ( ) . test (
200
+ try await app. testing ( ) . test (
201
201
. POST, " login " ,
202
202
beforeRequest: { req in
203
203
try req. content. encode ( LoginCredentials ( name: " foo " ) )
204
204
} ,
205
205
afterResponse: { res async in
206
206
#expect( res. status == . ok)
207
- XCTAssertContent ( LoginResponse . self, res) { login in
207
+ expectContent ( LoginResponse . self, res) { login in
208
208
token = login. token
209
209
}
210
210
}
@@ -215,27 +215,27 @@ struct JWTTests {
215
215
return
216
216
}
217
217
218
- try await app. testable ( ) . test (
218
+ try await app. testing ( ) . test (
219
219
. GET, " me " , headers: [ " authorization " : " Bearer \( token) " ]
220
220
) { res async in
221
221
#expect( res. status == . ok)
222
- XCTAssertContent ( TestUser . self, res) { user in
223
- XCTAssertEqual ( user. name, " foo " )
222
+ expectContent ( TestUser . self, res) { user in
223
+ #expect ( user. name == " foo " )
224
224
}
225
225
}
226
226
227
227
// token from same signer but for a different user
228
228
// this tests that the guard middleware catches the failure to auth before it reaches the route handler
229
229
let wrongNameToken = try await app. jwt. keys. sign ( TestUser ( name: " bob " ) )
230
- try await app. testable ( ) . test (
230
+ try await app. testing ( ) . test (
231
231
. GET, " me " , headers: [ " authorization " : " Bearer \( wrongNameToken) " ]
232
232
) { res async in
233
233
#expect( res. status == . unauthorized)
234
234
}
235
235
236
236
// create a token from a different signer
237
237
let fakeToken = try await JWTKeyCollection ( ) . add ( ecdsa: ES512PrivateKey ( ) ) . sign ( TestUser ( name: " bob " ) )
238
- try await app. testable ( ) . test (
238
+ try await app. testing ( ) . test (
239
239
. GET, " me " , headers: [ " authorization " : " Bearer \( fakeToken) " ]
240
240
) { res async in
241
241
#expect( res. status == . unauthorized)
@@ -262,7 +262,7 @@ struct JWTTests {
262
262
var headers = HTTPHeaders ( )
263
263
headers. bearerAuthorization = . init(
264
264
token: """
265
- eyJraWQiOiJGZnRPTlR4b0VnIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiZGV2LnRpbWMuc2l3YS1kZW1vLlRJTGlPUyIsImV4cCI6MTczMDc2MDAxOCwiaWF0IjoxNzMwNjczNjE4LCJzdWIiOiIwMDE1NDIuYjA0MTAwYzUxYWNiNDhkM2E1NzA2ODRmMTdkNjM5NGQuMTYwMyIsImNfaGFzaCI6IlUxc1d0Z1dfWTZSb3d1a09WRzJmNEEiLCJlbWFpbCI6Ijh5c2JjaHZjMm1AcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzX3ByaXZhdGVfZW1haWwiOnRydWUsImF1dGhfdGltZSI6MTczMDY3MzYxOCwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlfQ.fb-e48W_zMGfT0LqciYnBUBy7KxVaV5JC5VV4HFhhpK8yz0AUxeYHmXpkvt1gLPNnjd3c-fzMS0hUR-NiffgYuNs3qSFXSenb4BwYdDIuMXElggUPX3j6HU2TV-JYsTFl4tZpgnFs_0_56pscaJzQONCdrZdKJiD0lmtum7D-doH43aKflV-pAMXSZTCli9HwRNeZikmbY6wBS5Ltg4VI5Z8Usge4eS2HINdHIPSCadYf858pZ8huAaj5Jm4t_5j988khwgqBMc9haTHZgiUpK7SZDePuRsAAQQVCXnRsuibxFX66ugo5BEEKCdK-xg66iAstb_mC_628gMrybC-_w
265
+ eyJraWQiOiJkTWxFUkJhRmRLIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiZGV2LnRpbWMuc2l3YS1kZW1vLlRJTGlPUyIsImV4cCI6MTczODU4MjMxOSwiaWF0IjoxNzM4NDk1OTE5LCJzdWIiOiIwMDE1NDIuYjA0MTAwYzUxYWNiNDhkM2E1NzA2ODRmMTdkNjM5NGQuMTYwMyIsImNfaGFzaCI6Ik9SMld3QWhXT3BrTF9jbTJvc0xMdVEiLCJlbWFpbCI6Ijh5c2JjaHZjMm1AcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzX3ByaXZhdGVfZW1haWwiOnRydWUsImF1dGhfdGltZSI6MTczODQ5NTkxOSwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlLCJyZWFsX3VzZXJfc3RhdHVzIjowfQ.E33_wTzKG4h3E7EZ74ZDRrGRhZ-fmhe_2MlSTedQpwb8u3cqj5BdRgZ8eQ91WH7HPPCKoDtBK9W-H-kBtmDeqzNJM1m6nhYGvBs0XAoCaIzaWKNSl-pPVNbkIWwmwuKEHzN3Ra0uZ1Uw9GRp3DetgT10Qcyw855ladG42X_sWcFOf9xlOKRtZ6aOYH9oVK2Cw_6BiXYwuxDimN7YRfSVCsFsO5clYyS2axPQnVb1mLyFnJGrMr1rfa960QSvK2jD7cMny92msU2vECPjENgzUTL5ou__49KAH6scx6zChwE-_Uv2dYRkTVMbPgnVVvm2qOCblKnMSXKqlL3hzbXVDw
266
266
""" )
267
267
268
268
try await app. test ( . GET, " test " , headers: headers) { res async in
0 commit comments