Skip to content

Commit ae510ef

Browse files
authored
Update SIWA Token and Migrate to Vapor Testing (#165)
* Migrate to VaporTesting * Update SIWA token
1 parent af1c597 commit ae510ef

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

Package.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let package = Package(
1414
],
1515
dependencies: [
1616
.package(url: "https://github.com/vapor/jwt-kit.git", from: "5.1.0"),
17-
.package(url: "https://github.com/vapor/vapor.git", from: "4.101.0"),
17+
.package(url: "https://github.com/vapor/vapor.git", from: "4.110.2"),
1818
],
1919
targets: [
2020
.target(
@@ -28,7 +28,7 @@ let package = Package(
2828
name: "JWTTests",
2929
dependencies: [
3030
.target(name: "JWT"),
31-
.product(name: "XCTVapor", package: "vapor"),
31+
.product(name: "VaporTesting", package: "vapor"),
3232
]
3333
),
3434
]

Tests/JWTTests/JWTTests.swift

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import JWT
22
import JWTKit
33
import Testing
4-
import XCTVapor
4+
import VaporTesting
55

66
@Suite("JWTTests")
77
struct JWTTests {
@@ -128,14 +128,14 @@ struct JWTTests {
128128
var token: String?
129129

130130
// test login
131-
try await app.testable().test(
131+
try await app.testing().test(
132132
.POST, "login",
133133
beforeRequest: { req in
134134
try req.content.encode(LoginCredentials(name: "foo"))
135135
},
136136
afterResponse: { res async throws in
137137
#expect(res.status == .ok)
138-
XCTAssertContent(LoginResponse.self, res) { login in
138+
expectContent(LoginResponse.self, res) { login in
139139
token = login.token
140140
}
141141
}
@@ -147,7 +147,7 @@ struct JWTTests {
147147
}
148148

149149
// test manual authentication using req.jwt.verify
150-
try await app.testable().test(
150+
try await app.testing().test(
151151
.GET, "me", headers: ["authorization": "Bearer \(t)"]
152152
) { res async in
153153
#expect(res.status == .ok)
@@ -157,7 +157,7 @@ struct JWTTests {
157157
// create a token from a different signer
158158
let fakeToken = try await JWTKeyCollection()
159159
.add(ecdsa: ES512PrivateKey()).sign(TestUser(name: "bob"))
160-
try await app.testable().test(
160+
try await app.testing().test(
161161
.GET, "me", headers: ["authorization": "Bearer \(fakeToken)"]
162162
) { res async in
163163
#expect(res.status == .unauthorized)
@@ -197,14 +197,14 @@ struct JWTTests {
197197
var token: String?
198198

199199
// test login
200-
try await app.testable().test(
200+
try await app.testing().test(
201201
.POST, "login",
202202
beforeRequest: { req in
203203
try req.content.encode(LoginCredentials(name: "foo"))
204204
},
205205
afterResponse: { res async in
206206
#expect(res.status == .ok)
207-
XCTAssertContent(LoginResponse.self, res) { login in
207+
expectContent(LoginResponse.self, res) { login in
208208
token = login.token
209209
}
210210
}
@@ -215,27 +215,27 @@ struct JWTTests {
215215
return
216216
}
217217

218-
try await app.testable().test(
218+
try await app.testing().test(
219219
.GET, "me", headers: ["authorization": "Bearer \(token)"]
220220
) { res async in
221221
#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")
224224
}
225225
}
226226

227227
// token from same signer but for a different user
228228
// this tests that the guard middleware catches the failure to auth before it reaches the route handler
229229
let wrongNameToken = try await app.jwt.keys.sign(TestUser(name: "bob"))
230-
try await app.testable().test(
230+
try await app.testing().test(
231231
.GET, "me", headers: ["authorization": "Bearer \(wrongNameToken)"]
232232
) { res async in
233233
#expect(res.status == .unauthorized)
234234
}
235235

236236
// create a token from a different signer
237237
let fakeToken = try await JWTKeyCollection().add(ecdsa: ES512PrivateKey()).sign(TestUser(name: "bob"))
238-
try await app.testable().test(
238+
try await app.testing().test(
239239
.GET, "me", headers: ["authorization": "Bearer \(fakeToken)"]
240240
) { res async in
241241
#expect(res.status == .unauthorized)
@@ -262,7 +262,7 @@ struct JWTTests {
262262
var headers = HTTPHeaders()
263263
headers.bearerAuthorization = .init(
264264
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
266266
""")
267267

268268
try await app.test(.GET, "test", headers: headers) { res async in

0 commit comments

Comments
 (0)