Files
MikrotikManager/backend/src/modules/mcp/routing-recovery-authority.sql.test.ts
T

28 lines
1.7 KiB
TypeScript

import { assertOwnedRoutingRecoveryAuthoritySql, acceptRoutingRecoveryAuthoritySql } from "./routing-recovery-authority.sql-helper.js"
// Guard precedes imports that configure a pool or load private MCP state.
assertOwnedRoutingRecoveryAuthoritySql()
process.env.AUTH_REQUIRED = "true"
process.env.AUTH_JWT_SECRET = "owned-routing-recovery-authority-acceptance-secret"
process.env.AUTH_ISSUER = "https://owned-routing-recovery-authority.test"
const { pool, closePool } = await import("../../db/index.js")
try {
const { applySqlMigrations } = await import("../../db/migrate.js")
await applySqlMigrations(pool)
console.log("captured recovery authority SQL acceptance:", JSON.stringify(await acceptRoutingRecoveryAuthoritySql()))
const { updateMcpSettings } = await import("./store.js")
await import("./actions.js")
const { acceptScopedRouteCommunitySwitch } = await import("./routing-community-scoped-acceptance.js")
const actor = { id: "owned-routing-recovery-authority", email: "routing-recovery@example.invalid", name: "Owned recovery authority",
apps: ["mm"], permissions: ["mm:settings:admin", "mm:mcp:admin", "mm:mcp:approve", "mm:network:read", "mm:network:write", "mm:filters:write", "mm:servers:admin"],
issuedAt: Date.now() - 1000, expiresAt: Date.now() + 900000 }
await updateMcpSettings({ enabled: true }, actor)
for (const lateInverseAuthorityChange of ["edit", "disable", "grant"] as const) {
const evidence = await acceptScopedRouteCommunitySwitch(actor, { lateInverseAuthorityChange })
console.log("genuine late inverse authority SQL acceptance:", JSON.stringify(evidence))
}
} finally {
await (await import("../../services/scheduler.js")).stopSchedulerForDatabaseOperation()
await closePool()
}