1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
"use strict";
import jwt from "jsonwebtoken";
import { expect, describe, it, beforeEach } from "bun:test";
import util from "util";
import testUtils from "./test-utils";
describe("nonce option", function () {
let token;
beforeEach(function () {
token = jwt.sign({ nonce: "abcde" }, "secret", { algorithm: "HS256" });
});
[
{
description: "should work with a string",
nonce: "abcde",
},
].forEach(testCase => {
it(testCase.description, function (done) {
testUtils.verifyJWTHelper(token, "secret", { nonce: testCase.nonce }, (err, decoded) => {
testUtils.asyncCheck(done, () => {
expect(err).toBeNull();
expect(decoded).toHaveProperty("nonce", "abcde");
});
});
});
});
[true, false, null, -1, 0, 1, -1.1, 1.1, -Infinity, Infinity, NaN, "", " ", [], ["foo"], {}, { foo: "bar" }].forEach(
nonce => {
it(`should error with value ${util.inspect(nonce)}`, function (done) {
testUtils.verifyJWTHelper(token, "secret", { nonce }, err => {
testUtils.asyncCheck(done, () => {
expect(err).toBeInstanceOf(jwt.JsonWebTokenError);
expect(err).toHaveProperty("message", "nonce must be a non-empty string");
});
});
});
},
);
});
|