diff options
Diffstat (limited to 'test/js/third_party/jsonwebtoken/option-complete.test.js')
-rw-r--r-- | test/js/third_party/jsonwebtoken/option-complete.test.js | 53 |
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); + }); + }); + }); + }); +}); |