97 lines
2.6 KiB
TypeScript
97 lines
2.6 KiB
TypeScript
|
import { describe, it, expect } from "vitest";
|
||
|
|
||
|
import { buildNonce } from "./buildNonce";
|
||
|
|
||
|
describe("buildNonce", () => {
|
||
|
it("should return an empty string for an empty array", () => {
|
||
|
const nonce = buildNonce(new Uint8Array());
|
||
|
|
||
|
expect(nonce).toEqual("");
|
||
|
expect(atob(nonce).length).toEqual(0);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for values from 0 to 63", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map((_, i) => i);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("ABCDEFGHIJKLMNOPQRSTQQ==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for values from 64 to 127", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map((_, i) => i + 64);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("ABCDEFGHIJKLMNOPQRSTQQ==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for values from 128 to 191", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map((_, i) => i + 128);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("ABCDEFGHIJKLMNOPQRSTQQ==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for values from 192 to 255", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map((_, i) => i + 192);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("ABCDEFGHIJKLMNOPQRSTQQ==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for values from 0 to 42", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map((_, i) => 2 * i);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("ACEGIKMOQSUWYacegikmgg==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for 0 values", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map(() => 0);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("AAAAAAAAAAAAAAAAAAAAAA==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
|
||
|
it("should return a base64 string for 0xFF values", () => {
|
||
|
const array = Array(22)
|
||
|
.fill(0)
|
||
|
.map(() => 0xff);
|
||
|
const nonce = buildNonce(new Uint8Array(array));
|
||
|
|
||
|
expect(nonce.length).toEqual(24);
|
||
|
expect(nonce).toEqual("////////////////////ww==");
|
||
|
|
||
|
expect(atob(nonce).length).toEqual(16);
|
||
|
});
|
||
|
});
|