test: fresh-import remaining contamination-prone modules

This commit is contained in:
YeonGyu-Kim
2026-04-04 20:14:50 +09:00
parent 861ce1c161
commit 55d5ecb9fb
5 changed files with 90 additions and 47 deletions
+18 -6
View File
@@ -2,14 +2,26 @@ import { describe, expect, it, beforeEach, afterEach, mock } from "bun:test"
import { createHash, randomBytes } from "node:crypto"
import type { OAuthTokenData } from "./storage"
const {
McpOAuthProvider,
generateCodeVerifier,
generateCodeChallenge,
buildAuthorizationUrl,
} = await import(new URL("./provider.ts?real-provider-test", import.meta.url).href)
type ProviderModule = typeof import("./provider")
async function importFreshProviderModule(): Promise<ProviderModule> {
return await import(new URL(`./provider.ts?real-provider-test=${Date.now()}-${Math.random()}`, import.meta.url).href)
}
describe("McpOAuthProvider", () => {
let McpOAuthProvider: ProviderModule["McpOAuthProvider"]
let generateCodeVerifier: ProviderModule["generateCodeVerifier"]
let generateCodeChallenge: ProviderModule["generateCodeChallenge"]
let buildAuthorizationUrl: ProviderModule["buildAuthorizationUrl"]
beforeEach(async () => {
const providerModule = await importFreshProviderModule()
McpOAuthProvider = providerModule.McpOAuthProvider
generateCodeVerifier = providerModule.generateCodeVerifier
generateCodeChallenge = providerModule.generateCodeChallenge
buildAuthorizationUrl = providerModule.buildAuthorizationUrl
})
describe("generateCodeVerifier", () => {
it("returns a base64url-encoded 32-byte random string", () => {
// given