aboutsummaryrefslogtreecommitdiff
path: root/test/js/third_party/jsonwebtoken/option-complete.test.js
diff options
context:
space:
mode:
authorGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-10-14 12:58:30 -0700
committerGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-10-14 12:58:30 -0700
commitf9add8b6bea4df3cdbd56a21f17e4cab1a854e4e (patch)
tree8e5306104d81c67b771181337bba02cd9ec39453 /test/js/third_party/jsonwebtoken/option-complete.test.js
parent81a1a58d66c598ea35c42453d0ba4c6341a940fc (diff)
parent9b5e66453b0879ed77b71dcdbe50e4efa184261e (diff)
downloadbun-sdl.tar.gz
bun-sdl.tar.zst
bun-sdl.zip
Merge branch 'main' into sdlsdl
Diffstat (limited to 'test/js/third_party/jsonwebtoken/option-complete.test.js')
-rw-r--r--test/js/third_party/jsonwebtoken/option-complete.test.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/js/third_party/jsonwebtoken/option-complete.test.js b/test/js/third_party/jsonwebtoken/option-complete.test.js
new file mode 100644
index 000000000..2b446e4e2
--- /dev/null
+++ b/test/js/third_party/jsonwebtoken/option-complete.test.js
@@ -0,0 +1,53 @@
+"use strict";
+
+import { expect, describe, it } from "bun:test";
+import testUtils from "./test-utils";
+import jws from "jws";
+import fs from "fs";
+import path from "path";
+
+describe("complete option", function () {
+ const secret = fs.readFileSync(path.join(__dirname, "priv.pem"));
+ const pub = fs.readFileSync(path.join(__dirname, "pub.pem"));
+
+ const header = { alg: "RS256" };
+ const payload = { iat: Math.floor(Date.now() / 1000) };
+ const signed = jws.sign({ header, payload, secret, encoding: "utf8" });
+ const signature = jws.decode(signed).signature;
+
+ [
+ {
+ description: "should return header, payload and signature",
+ complete: true,
+ },
+ ].forEach(testCase => {
+ it(testCase.description, function (done) {
+ testUtils.verifyJWTHelper(signed, pub, { typ: "JWT", complete: testCase.complete }, (err, decoded) => {
+ testUtils.asyncCheck(done, () => {
+ expect(err).toBeNull();
+ expect(decoded.header).toHaveProperty("alg", header.alg);
+ expect(decoded.payload).toHaveProperty("iat", payload.iat);
+ expect(decoded).toHaveProperty("signature", signature);
+ });
+ });
+ });
+ });
+ [
+ {
+ description: "should return payload",
+ complete: false,
+ },
+ ].forEach(testCase => {
+ it(testCase.description, function (done) {
+ testUtils.verifyJWTHelper(signed, pub, { typ: "JWT", complete: testCase.complete }, (err, decoded) => {
+ testUtils.asyncCheck(done, () => {
+ expect(err).toBeNull();
+ expect(decoded.header).toBeUndefined();
+ expect(decoded.payload).toBeUndefined();
+ expect(decoded.signature).toBeUndefined();
+ expect(decoded).toHaveProperty("iat", payload.iat);
+ });
+ });
+ });
+ });
+});