aboutsummaryrefslogtreecommitdiff
path: root/test/js/third_party/jsonwebtoken/option-nonce.test.js
blob: abe918d42b93ddba700fa72ac1f2a4a44c490f69 (plain) (blame)
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");
          });
        });
      });
    },
  );
});