| |
| import "dotenv/config"; |
| import { setSetting, getSetting, deleteSettings } from "../src/server/db"; |
| import { hydrateFromSupabase } from "../src/server/hydrate"; |
| import { createClient } from "@supabase/supabase-js"; |
|
|
| const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms)); |
| const stamp = `v-${Date.now()}`; |
|
|
| setSetting("selftest.sync", stamp); |
| console.log("local set:", getSetting("selftest.sync")); |
|
|
| await sleep(3000); |
|
|
| const c = createClient(process.env.SUPABASE_URL as string, process.env.SUPABASE_SERVICE_KEY as string, { |
| auth: { persistSession: false, autoRefreshToken: false } |
| }); |
| const remote = await c.from("app_settings").select("value").eq("key", "selftest.sync"); |
| console.log("push ->", remote.data?.[0]?.value === stamp ? "PUSH OK" : `PUSH FAIL (${JSON.stringify(remote.data)})`); |
|
|
| await hydrateFromSupabase(); |
| console.log("after hydrate local:", getSetting("selftest.sync")); |
|
|
| deleteSettings(["selftest.sync"]); |
| await sleep(1500); |
| const after = await c.from("app_settings").select("value").eq("key", "selftest.sync"); |
| console.log("cleanup ->", (after.data?.length ?? 0) === 0 ? "CLEAN OK" : "still present"); |
|
|
| process.exit(0); |
|
|