Files
plainleaf/web/boot_config.test.ts
T
Zef HemelandGitHub dc2987a3f9 Sync engine rearchitecture (#1516)
* Don't require auth for .ping
* Finally introducing loggers
* Remove file list caching from disk_space_primitives
I don't think this is required anymore with the sync model
* Simplification of space primitives and more tests
* More reliable online status
* Add .zed settings
* Remove selfUpdate argument from `writeFile` no longer used
- Add `sync` config schema and document sync options
- Move sync config handling to client boot logic
- Move BootConfig type to ui_types.ts
- Remove sync env vars from server
- Update documentation for sync and architecture
* Improve sync logic and proxy routing for full sync state
* Add BoxProxy for late-bound client and improve Lua boot
- Add isMobile syscall for editor
* Add concurrency to sync process and log indexing duration
* Better service worker lifecycle management
2025-09-12 14:43:57 +02:00

67 lines
1.4 KiB
TypeScript

import { assertEquals } from "@std/assert";
import { extractSpaceLuaFromPageText, loadConfig } from "./boot_config.ts";
Deno.test("Test boot config", () => {
// One block present
assertEquals(
extractSpaceLuaFromPageText("Hello\n\n```space-lua\ntest()\n```\nMore"),
"test()",
);
// Two blocks present
assertEquals(
extractSpaceLuaFromPageText(
"Hello\n\n```space-lua\ntest()\n```\nMore\n\n```space-lua\ntest2()\n```",
),
"test()\ntest2()",
);
// No lua present
assertEquals(
extractSpaceLuaFromPageText("Hello\n\n```lua\ntest()\n```\nMore"),
"",
);
});
Deno.test("Test CONFIG lua eval", async () => {
// Test base case: no config code
let config = await loadConfig("", {});
assertEquals(config.values, {});
// Check a few config sets
config = await loadConfig(
`
config.set {
option1 = "pete"
}
config.set("optionObj.nested", 5)
`,
{},
);
assertEquals(config.values, {
option1: "pete",
optionObj: {
nested: 5,
},
});
// Check random Lua code crap resilience
config = await loadConfig(
`
config.set {
option1 = "pete"
}
slashCommand.define {}
local shouldSet = true
if shouldSet then
config.set("optionObj.nested", 5)
end
`,
{},
);
assertEquals(config.values, {
option1: "pete",
optionObj: {
nested: 5,
},
});
});