"use strict"; const path = require("node:path"); function buildControlPlaneTestEnv(dataRoot, baseEnv = process.env) { const backend = String(baseEnv.MNOTE_SMOKE_CONTROL_PLANE_BACKEND || "libsql-local").trim(); if (!backend) { throw new Error("MNOTE_SMOKE_CONTROL_PLANE_BACKEND 不能为空"); } const env = { MNOTE_CONTROL_PLANE_BACKEND: backend, }; if (backend === "sqlite") { env.MNOTE_CONTROL_PLANE_DB_PATH = baseEnv.MNOTE_SMOKE_CONTROL_PLANE_DB_PATH || path.join(dataRoot, "control-plane.sqlite3"); return env; } if (backend === "libsql-local" || backend === "turso-local" || backend === "turso") { env.MNOTE_TURSO_LOCAL_PATH = baseEnv.MNOTE_SMOKE_TURSO_LOCAL_PATH || path.join(dataRoot, "control-plane-libsql.db"); return env; } if (backend === "turso-local-replica" || backend === "turso-remote-replica") { env.MNOTE_TURSO_LOCAL_REPLICA_PATH = baseEnv.MNOTE_SMOKE_TURSO_LOCAL_REPLICA_PATH || baseEnv.MNOTE_TURSO_LOCAL_REPLICA_PATH || path.join(dataRoot, "control-plane-replica.db"); return env; } if (backend === "turso-remote" || backend === "turso-synced") { return env; } throw new Error(`Unsupported MNOTE_SMOKE_CONTROL_PLANE_BACKEND: ${backend}`); } module.exports = { buildControlPlaneTestEnv, };