Add MineGeo gameplay systems and interface

This commit is contained in:
2026-10-10 10:27:47 +05:00
parent bf01d9801d
commit 9af71c85c2
47 changed files with 9954 additions and 93 deletions

View File

@@ -1,21 +1,21 @@
import assert from "node:assert/strict";
import { readFile } from "node:fs/promises";
import { readFile, readdir } from "node:fs/promises";
import { PGlite } from "../.data/sql-verification/node_modules/@electric-sql/pglite/dist/index.js";
const db = new PGlite();
try {
await db.exec(`create role anon; create role authenticated; create role service_role bypassrls;
create table public.profiles(id uuid primary key, role text not null);
grant select on public.profiles to service_role;
insert into public.profiles values
('00000000-0000-4000-8000-000000000001', 'moderator'),
('00000000-0000-4000-8000-000000000002', 'contributor');`);
await db.exec(
await readFile(
"supabase/migrations/20261006141532_site_settings.sql",
"utf8",
),
);
create schema auth; create table auth.users(id uuid primary key);
create function auth.uid() returns uuid language sql as $$ select null::uuid $$;
create schema storage; create table storage.buckets(id text primary key,name text,public boolean,file_size_limit bigint);`);
for (const file of (await readdir("supabase/migrations"))
.filter((f) => f.endsWith(".sql"))
.sort())
await db.exec(await readFile(`supabase/migrations/${file}`, "utf8"));
await db.exec(`insert into auth.users values
('00000000-0000-4000-8000-000000000001'),('00000000-0000-4000-8000-000000000002');
insert into public.profiles(id,role) values
('00000000-0000-4000-8000-000000000001','admin'),('00000000-0000-4000-8000-000000000002','contributor');`);
const flag = async () =>
(await db.query("select beta_badge_enabled from public.site_settings"))
.rows[0].beta_badge_enabled;
@@ -39,11 +39,11 @@ try {
db.query(
"select public.set_beta_badge('00000000-0000-4000-8000-000000000002', false)",
),
/Moderator permission required/,
/Admin permission required/,
);
await assert.rejects(
db.query("select public.set_beta_badge(null, false)"),
/Moderator permission required/,
/Admin permission required/,
);
assert.equal(await flag(), true);
await db.query(
@@ -66,7 +66,7 @@ try {
/visibility is required/,
);
console.log(
"Site settings SQL passed: guests and players denied; moderators can hide and restore; updates persist and record the moderator.",
"Site settings SQL passed: guests and players denied; admins can hide and restore; updates persist and record the admin.",
);
} finally {
await db.close();