mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
Three conflicts, each resolved by combining both sides rather than picking one.
compose.yml passes both env vars through to the container: swarm-nfs adds
INFINITO_SWARM_MGR_IP, this branch adds INFINITO_TOR_SOCKS_PORT, and neither
substitutes for the other.
daemon.json.j2 takes the data-root block from swarm-nfs and keeps HEAD's dns
key. The incoming side writes networks.internet.dns directly; lookup(
'container_dns') already returns that value as its clearnet entry and prepends
the docker0 bridge on a Tor node in compose mode, so the incoming form is a
strict subset and dropping it loses nothing.
The WordPress CA-trust addon spec gains skipUnlessServiceEnabled("sso") from
swarm-nfs alongside HEAD's gotoOnion and resolveTimeout, and asserts on the
Plugin Name the mu-plugin header declares - the mustuse screen renders that,
not the filename - with resolveTimeout applied to the literal the incoming
side left bare.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
const { test, expect } = require("@playwright/test");
|
|
const { skipUnlessAddonEnabled } = require("../addon-gating");
|
|
const { skipUnlessServiceEnabled } = require("../service-gating");
|
|
const { resolveTimeout } = require("../timeouts");
|
|
const { gotoOnion } = require("../personas");
|
|
const shared = require("../_shared");
|
|
|
|
test("addon infinito-http-ca-trust: the CA-trust mu-plugin is loaded by WordPress and outbound HTTPS calls resolve", async ({
|
|
browser,
|
|
}) => {
|
|
skipUnlessAddonEnabled("infinito-http-ca-trust");
|
|
skipUnlessServiceEnabled("sso");
|
|
test.setTimeout(resolveTimeout(120_000));
|
|
|
|
const context = await browser.newContext({ ignoreHTTPSErrors: true });
|
|
const page = await context.newPage();
|
|
|
|
try {
|
|
await shared.wpAdminLoginViaOidc(
|
|
page,
|
|
shared.env.wpBaseUrl,
|
|
shared.env.adminUsername,
|
|
shared.env.adminPassword
|
|
);
|
|
|
|
await gotoOnion(
|
|
page,
|
|
`${shared.env.wpBaseUrl}/wp-admin/plugins.php?plugin_status=mustuse`,
|
|
{ waitUntil: "domcontentloaded", timeout: resolveTimeout(60_000) }
|
|
);
|
|
|
|
await expect(
|
|
page.locator("#the-list"),
|
|
"the Must-Use plugins screen must list the CA-trust mu-plugin under the Plugin Name its header declares — one absent from this screen was never copied into wp-content/mu-plugins"
|
|
).toContainText("Infinito.Nexus HTTP CA Trust", {
|
|
timeout: resolveTimeout(30_000),
|
|
});
|
|
|
|
const restResponse = await page.request.get(
|
|
`${shared.env.wpBaseUrl}/wp-json/`,
|
|
{ failOnStatusCode: false }
|
|
);
|
|
expect(
|
|
restResponse.status(),
|
|
"the REST root must answer over HTTPS: WordPress reaching its own TLS endpoint is what this mu-plugin's CA bundle enables"
|
|
).toBe(200);
|
|
} finally {
|
|
await page.close().catch(() => {});
|
|
await context.close().catch(() => {});
|
|
}
|
|
});
|