Add JWT
ci/woodpecker/push/test Pipeline failed

Closes #13
This commit is contained in:
2024-05-15 10:36:54 +02:00
parent de864ebab1
commit 0347f30bd0
4 changed files with 124 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import {beforeAll, expect, test} from 'bun:test'
import {JWTcontext, JWTalgorithm} from '../src/jwt'
const algs: JWTalgorithm[] = ["HS256", "HS512", "ES256", "ES512", "EdDSA"]
const contexts: Map<JWTalgorithm, JWTcontext> = new Map()
beforeAll(async () => {
for (const alg of algs) {
const key = await JWTcontext.gen_key(alg as JWTalgorithm)
expect(key).not.toBeUndefined()
const context = new JWTcontext(key, alg as JWTalgorithm)
contexts.set(alg as JWTalgorithm, context)
}
})
test('Base case', async () => {
let payload = {
yeet: "yaat",
lol: "yes"
}
// @ts-expect-error : idc bout your iterator thingy >:(
for (const context of contexts.values()) {
const jwt = await context.sign(payload, true, "2 days", "pascal", "server")
const decoded = jwt.payload
expect(decoded).toEqual(payload)
const verified = (await context.verify(jwt, "pascal", "server")).expect("Should verify the JWT")
expect(verified).toEqual(payload)
}
})
test.todo("Multiple audience can be verified")
test.todo("Multiple issuer can be verified")
test.todo("Wrong audience is rejected")
test.todo("Wrong issuer is rejected")
test.todo("Expired JWT is rejected")
test.todo("Wrong key won't decrypt")
test.todo("tampered JWT are rejected (test 3 parts) (TODO : decode ?)")