mirror of
https://github.com/gethomepage/homepage.git
synced 2026-09-29 15:31:16 -07:00
Tweak: read auth providers in-process on the sign-in page, set env earlier (#7023)
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
describe("instrumentation", () => {
|
||||
const originalEnv = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
vi.resetModules();
|
||||
process.env = { ...originalEnv };
|
||||
delete process.env.NEXTAUTH_SECRET;
|
||||
delete process.env.NEXTAUTH_URL;
|
||||
delete process.env.HOMEPAGE_AUTH_SECRET;
|
||||
delete process.env.HOMEPAGE_EXTERNAL_URL;
|
||||
process.env.NEXT_RUNTIME = "nodejs";
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
|
||||
it("maps HOMEPAGE_* auth envs to their NextAuth equivalents", async () => {
|
||||
process.env.HOMEPAGE_AUTH_SECRET = "secret";
|
||||
process.env.HOMEPAGE_EXTERNAL_URL = "https://homepage.example";
|
||||
const { register } = await import("./instrumentation");
|
||||
|
||||
register();
|
||||
|
||||
expect(process.env.NEXTAUTH_SECRET).toBe("secret");
|
||||
expect(process.env.NEXTAUTH_URL).toBe("https://homepage.example");
|
||||
});
|
||||
|
||||
it("does not override explicitly configured NextAuth envs", async () => {
|
||||
process.env.HOMEPAGE_AUTH_SECRET = "secret";
|
||||
process.env.HOMEPAGE_EXTERNAL_URL = "https://homepage.example";
|
||||
process.env.NEXTAUTH_SECRET = "explicit-secret";
|
||||
process.env.NEXTAUTH_URL = "https://explicit.example";
|
||||
const { register } = await import("./instrumentation");
|
||||
|
||||
register();
|
||||
|
||||
expect(process.env.NEXTAUTH_SECRET).toBe("explicit-secret");
|
||||
expect(process.env.NEXTAUTH_URL).toBe("https://explicit.example");
|
||||
});
|
||||
|
||||
it("is a no-op outside the node runtime", async () => {
|
||||
process.env.NEXT_RUNTIME = "edge";
|
||||
process.env.HOMEPAGE_EXTERNAL_URL = "https://homepage.example";
|
||||
const { register } = await import("./instrumentation");
|
||||
|
||||
register();
|
||||
|
||||
expect(process.env.NEXTAUTH_URL).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user