Files
MikrotikManager/backend/src/modules/mcp/routing-network-forward-rounds.owned.test.ts
T

44 lines
2.9 KiB
TypeScript

import { MIGRATION_MANIFEST } from "../../db/migration-manifest.js"
/** Exclusive owned SQL/localhost acceptance. Genuine scoped runtime produces
* CONFIG_APPLIED; only persistent profile authority is a synthetic fixture. */
import assert from "node:assert/strict"
import { basename, dirname, isAbsolute, resolve } from "node:path"
assert.equal(process.env.MMAPP_OWN_ROUTING_FORWARD_ROUNDS, "true")
assert.equal(process.env.NODE_ENV, "test")
const target = new URL(process.env.DATABASE_URL ?? "")
assert(["postgres:", "postgresql:"].includes(target.protocol))
assert.equal(target.hostname, "127.0.0.1"); assert.equal(target.username, "mcp_test")
assert(target.password); assert.equal(target.pathname, "/postgres")
assert(Number.isInteger(Number(target.port)) && Number(target.port) > 0 && Number(target.port) <= 65535)
assert.equal(target.search, ""); assert.equal(target.hash, "")
assert(process.env.MCP_STATE_DIR && isAbsolute(process.env.MCP_STATE_DIR))
assert.equal(basename(resolve(process.env.MCP_STATE_DIR)), "state")
assert(basename(dirname(resolve(process.env.MCP_STATE_DIR))).startsWith("mm-mcp-test-"))
const originalEffects = process.env.MMAPP_OWN_ROUTING_ORIGINAL_EFFECTS === "true"
assert(!(originalEffects && process.env.MMAPP_OWN_ROUTING_WORKER_REPRO === "true"), "Owned effect acceptance cannot mix with the worker repro profile")
process.env.AUTH_REQUIRED = "true"
process.env.AUTH_JWT_SECRET = "owned-routing-forward-rounds-acceptance-secret"
process.env.AUTH_ISSUER = "https://owned-routing-forward-rounds.test"
const { pool, closePool } = await import("../../db/index.js")
const { applySqlMigrations } = await import("../../db/migrate.js")
const { updateMcpSettings } = await import("./store.js")
const actor = { id: "owned-routing-forward-rounds-owner", email: "owned-routing@example.test", name: "Owned routing forward rounds",
apps: ["mm"], permissions: ["mm:settings:admin", "mm:network:admin", "mm:filters:admin", "mm:servers:admin"], expiresAt: Date.now() + 3600000 }
try {
await applySqlMigrations(pool)
assert.equal(Number((await pool.query("SELECT count(*) AS n FROM schema_migrations")).rows[0].n), MIGRATION_MANIFEST.length)
assert.equal(Number((await pool.query("SELECT count(*) AS n FROM servers")).rows[0].n), 0)
await updateMcpSettings({ enabled: true }, actor)
if(process.env.MMAPP_OWN_ROUTING_WORKER_REPRO==="true") {
console.log("Worker fixture repro:",await (await import("./routing-worker-fixture-isolation.sql-helper.js")).acceptRoutingWorkerFixtureIsolation(actor))
}
const result = await (await import("./routing-community-scoped-acceptance.js")).acceptScopedRouteCommunitySwitch(actor,
originalEffects ? { originalEffectsOnly: true } : process.env.MMAPP_OWN_ROUTING_WORKER_REPRO==="true"?{}:{ forwardRoundsOnly: true })
assert.equal(result.accepted, true)
} finally {
await (await import("../../services/scheduler.js")).stopSchedulerForDatabaseOperation()
await closePool()
}