mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-11-03 23:08:18 +00:00
feat(tests): enhance push/pull test with Docker integration and improved environment variable handling
style(test): format comment
This commit is contained in:
1 file changed
+19
-5
@@ -21,6 +21,7 @@ import { assertEquals } from "@std/assert";
|
||||
import { TempDir } from "./helpers/temp.ts";
|
||||
import { runCliOrFail } from "./helpers/cli.ts";
|
||||
import { applyCouchdbSettings, initSettingsFile } from "./helpers/settings.ts";
|
||||
import { startCouchdb, stopCouchdb } from "./helpers/docker.ts";
|
||||
|
||||
const REMOTE_PATH = Deno.env.get("REMOTE_PATH") ?? "test/push-pull.txt";
|
||||
|
||||
@@ -31,12 +32,20 @@ Deno.test("push/pull roundtrip", async () => {
|
||||
const vaultDir = workDir.join("vault");
|
||||
await Deno.mkdir(join(vaultDir, "test"), { recursive: true });
|
||||
|
||||
await initSettingsFile(settingsFile);
|
||||
const uri = Deno.env.get("COUCHDB_URI") ?? "http://127.0.0.1:5989/";
|
||||
const user = Deno.env.get("COUCHDB_USER") ?? "admin";
|
||||
const password = Deno.env.get("COUCHDB_PASSWORD") ?? "testpassword";
|
||||
const dbname = Deno.env.get("COUCHDB_DBNAME") ?? `push-pull-${Date.now()}`;
|
||||
|
||||
const uri = Deno.env.get("COUCHDB_URI") ?? "";
|
||||
const user = Deno.env.get("COUCHDB_USER") ?? "";
|
||||
const password = Deno.env.get("COUCHDB_PASSWORD") ?? "";
|
||||
const dbname = Deno.env.get("COUCHDB_DBNAME") ?? "";
|
||||
const shouldStartDocker = Deno.env.get("LIVESYNC_START_DOCKER") !== "0";
|
||||
const keepDocker = Deno.env.get("LIVESYNC_DEBUG_KEEP_DOCKER") === "1";
|
||||
|
||||
if (shouldStartDocker) {
|
||||
await startCouchdb(uri, user, password, dbname);
|
||||
}
|
||||
|
||||
try {
|
||||
await initSettingsFile(settingsFile);
|
||||
|
||||
if (uri && user && password && dbname) {
|
||||
console.log("[INFO] applying CouchDB env vars to settings");
|
||||
@@ -61,4 +70,9 @@ Deno.test("push/pull roundtrip", async () => {
|
||||
const pulled = await Deno.readTextFile(pulledFile);
|
||||
assertEquals(content, pulled, "push/pull roundtrip content mismatch");
|
||||
console.log("[PASS] push/pull roundtrip matched");
|
||||
} finally {
|
||||
if (shouldStartDocker && !keepDocker) {
|
||||
await stopCouchdb().catch(() => {});
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user