mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 13:38:31 +00:00
58 lines
2.0 KiB
JavaScript
58 lines
2.0 KiB
JavaScript
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { afterAll, beforeAll, describe, expect, it, vi } from "vitest";
|
|
|
|
const originalDataDir = process.env.DATA_DIR;
|
|
let tempDir;
|
|
let db;
|
|
let getUsageTopologyProviders;
|
|
|
|
beforeAll(async () => {
|
|
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "9router-usage-topology-"));
|
|
process.env.DATA_DIR = tempDir;
|
|
vi.resetModules();
|
|
db = await import("@/lib/db/index.js");
|
|
await db.initDb();
|
|
({ getUsageTopologyProviders } = await import("@/lib/providers/usageTopologyProviders.js"));
|
|
});
|
|
|
|
afterAll(() => {
|
|
if (tempDir) fs.rmSync(tempDir, { recursive: true, force: true });
|
|
if (originalDataDir === undefined) delete process.env.DATA_DIR;
|
|
else process.env.DATA_DIR = originalDataDir;
|
|
});
|
|
|
|
describe("usage topology providers", () => {
|
|
it("includes every active router connection, regardless of dashboard owner", async () => {
|
|
const firstUser = await db.createUser({ username: "topology-first", password: "password", role: "user" });
|
|
const secondUser = await db.createUser({ username: "topology-second", password: "password", role: "user" });
|
|
|
|
await db.createProviderConnection({
|
|
provider: "topology-provider-first",
|
|
authType: "apikey",
|
|
apiKey: "first-key",
|
|
ownerId: firstUser.id,
|
|
});
|
|
await db.createProviderConnection({
|
|
provider: "topology-provider-second",
|
|
authType: "apikey",
|
|
apiKey: "second-key",
|
|
ownerId: secondUser.id,
|
|
});
|
|
await db.createProviderConnection({
|
|
provider: "topology-provider-inactive",
|
|
authType: "apikey",
|
|
apiKey: "inactive-key",
|
|
ownerId: secondUser.id,
|
|
isActive: false,
|
|
});
|
|
|
|
const providers = await getUsageTopologyProviders();
|
|
const providerIds = providers.map((provider) => provider.provider);
|
|
|
|
expect(providerIds).toContain("topology-provider-first");
|
|
expect(providerIds).toContain("topology-provider-second");
|
|
expect(providerIds).not.toContain("topology-provider-inactive");
|
|
});
|
|
}); |