UNPKG

@pedwise/next-firebase-auth-edge

Version:

Next.js 13 Firebase Authentication for Edge and server runtimes. Dedicated for Next 13 server components. Compatible with Next.js middleware.

52 lines 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sign_1 = require("./sign"); describe("sign", () => { const globalOriginal = Object.assign({}, global); let globalAny = global; beforeAll(() => { globalAny.crypto = { subtle: { importKey: jest.fn(), sign: jest.fn(), }, }; }); afterAll(() => { globalAny = globalOriginal; }); beforeEach(() => { const cryptoKey = { algorithm: { name: "RSASSA-PKCS1-v1_5", hash: "SHA-256", }, extractable: false, type: "JWT", usages: ["sign"], }; const signature = new Uint8Array("secret".split("").map((character) => character.charCodeAt(0))).buffer; globalAny.crypto.subtle.importKey.mockReturnValue(cryptoKey); globalAny.crypto.subtle.sign.mockReturnValue(signature); }); it("provides expected JWT with privateKey", async () => { expect.assertions(1); const payload = { exp: 946688400 }; const privateKey = "-----BEGIN PRIVATE KEY-----\nexample\n-----END PRIVATE KEY-----\n"; expect(await (0, sign_1.sign)({ payload, privateKey })).toBe("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjk0NjY4ODQwMH0.c2VjcmV0"); }); it("provides expected JWT with secret", async () => { expect.assertions(1); const payload = { exp: 946688400 }; const secret = "secret"; expect(await (0, sign_1.sign)({ payload, secret })).toBe("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjk0NjY4ODQwMH0.c2VjcmV0"); }); it("adds keyId to ecnoded JWT header", async () => { expect.assertions(1); const payload = { exp: 946688400 }; const privateKey = "-----BEGIN PRIVATE KEY-----\nexample\n-----END PRIVATE KEY-----\n"; const keyId = "key123"; expect(await (0, sign_1.sign)({ payload, privateKey, keyId })).toBe("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImtleTEyMyJ9.eyJleHAiOjk0NjY4ODQwMH0.c2VjcmV0"); }); }); //# sourceMappingURL=sign.test.js.map