48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||
|
||
const azureTestConfig = {
|
||
tenantId: "00000000-0000-0000-0000-000000000001",
|
||
clientId: "00000000-0000-0000-0000-000000000002",
|
||
clientSecret: "test-secret-not-used-for-url",
|
||
};
|
||
|
||
const originalAzureEnv = {
|
||
tenantId: process.env.AZURE_AD_TENANT_ID,
|
||
clientId: process.env.AZURE_AD_CLIENT_ID,
|
||
clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
|
||
redirectUri: process.env.AZURE_AD_REDIRECT_URI,
|
||
};
|
||
|
||
describe("Azure AD configuration", () => {
|
||
beforeEach(() => {
|
||
// Chaque test utilise une instance MSAL neuve et ne dépend jamais des secrets CI.
|
||
vi.resetModules();
|
||
process.env.AZURE_AD_TENANT_ID = azureTestConfig.tenantId;
|
||
process.env.AZURE_AD_CLIENT_ID = azureTestConfig.clientId;
|
||
process.env.AZURE_AD_CLIENT_SECRET = azureTestConfig.clientSecret;
|
||
process.env.AZURE_AD_REDIRECT_URI = "https://example.test/api/auth/azure/callback";
|
||
});
|
||
|
||
afterAll(() => {
|
||
process.env.AZURE_AD_TENANT_ID = originalAzureEnv.tenantId;
|
||
process.env.AZURE_AD_CLIENT_ID = originalAzureEnv.clientId;
|
||
process.env.AZURE_AD_CLIENT_SECRET = originalAzureEnv.clientSecret;
|
||
process.env.AZURE_AD_REDIRECT_URI = originalAzureEnv.redirectUri;
|
||
});
|
||
|
||
it("détecte Azure AD lorsqu’une configuration complète est fournie", async () => {
|
||
const { isAzureAdConfigured } = await import("./azureAuth");
|
||
const configured = isAzureAdConfigured();
|
||
expect(configured).toBe(true);
|
||
});
|
||
|
||
it("génère une URL d’autorisation Azure AD à partir de la configuration de test", async () => {
|
||
const { getAzureAuthUrl } = await import("./azureAuth");
|
||
const url = await getAzureAuthUrl();
|
||
expect(url).toContain("login.microsoftonline.com");
|
||
expect(url).toContain("oauth2/v2.0/authorize");
|
||
expect(url).toContain(azureTestConfig.tenantId);
|
||
expect(url).toContain(azureTestConfig.clientId);
|
||
});
|
||
});
|