mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
const { test, expect } = require("./onion-test");
|
|
const { resolveTimeout } = require("./timeouts");
|
|
|
|
exports.register = function (shared) {
|
|
test("element-call: Element config.json advertises a video-call backend when conferencing is enabled", async ({ request }) => {
|
|
shared.skipUnlessServiceEnabled("element_call");
|
|
const { elementBaseUrl } = shared.env;
|
|
|
|
const configResponse = await request.get(`${elementBaseUrl}/config.json`, {
|
|
failOnStatusCode: false,
|
|
ignoreHTTPSErrors: true,
|
|
timeout: resolveTimeout(30_000),
|
|
});
|
|
expect(configResponse.status(), `Element /config.json must serve when element_call is enabled`).toBe(200);
|
|
|
|
const body = await configResponse.text();
|
|
let config;
|
|
try {
|
|
config = JSON.parse(body);
|
|
} catch (e) {
|
|
throw new Error(`Element /config.json must be valid JSON: ${e.message}`, { cause: e });
|
|
}
|
|
|
|
const serializedConfig = JSON.stringify(config);
|
|
const advertisesCallBackend =
|
|
/element[_-]?call/i.test(serializedConfig) ||
|
|
/jitsi/i.test(serializedConfig) ||
|
|
/widget_build_url|widget_url|features\..*call/i.test(serializedConfig);
|
|
|
|
expect(
|
|
advertisesCallBackend,
|
|
`Element /config.json must advertise a call backend (element_call / jitsi / widget_url / features.*call) when conferencing is enabled. Got keys: ${Object.keys(config).join(", ")}`,
|
|
).toBe(true);
|
|
});
|
|
};
|