mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
fix(e2e): skip seaweedfs filer check on onion targets
When an app rides onion, Playwright routes through the node Tor SOCKS proxy, which cannot resolve the clearnet-internal SeaweedFS filer UI domain (net::ERR_SOCKS_CONNECTION_FAILED). Skip the filer storage check on onion targets in all consumer specs — same pattern already proven in the nextcloud spec. Clearnet runs are unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
89c6d43b77
commit
6f9142027d
12 files changed
+24
-12
No files matched your search
@@ -1,5 +1,5 @@
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const {
|
||||
runSeaweedfsStorageCheck,
|
||||
@@ -23,6 +23,7 @@ const akauntingAdminPassword = decodeDotenvQuotedValue(process.env.AKAUNTING_ADM
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Akaunting company logo is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// check proves that the configured bucket gained an object.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const {
|
||||
runSeaweedfsStorageCheck,
|
||||
@@ -109,6 +109,7 @@ async function createBaserowFileRow(appPage, baseUrl, accessToken) {
|
||||
}
|
||||
|
||||
test("seaweedfs: an uploaded Baserow file-field document is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
skipUnlessServiceEnabled("sso");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// Filer UI.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const {
|
||||
runSeaweedfsStorageCheck,
|
||||
@@ -24,6 +24,7 @@ const PNG_AVATAR_BASE64 =
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAA60lEQVR4nO3QQQ3AIADAQEDh5CAHqbOwvsiSOwVN537O4Jt1O+BPzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCswKzArMCl7E6QIw0tiFNgAAAABJRU5ErkJggg==";
|
||||
|
||||
test("seaweedfs: a BookWyrm avatar upload is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
// check proves the bucket grew via the Filer UI.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck, decodeDotenvQuotedValue } = require("./personas");
|
||||
|
||||
@@ -23,6 +23,7 @@ const PNG_64x64 = Buffer.from(
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Decidim avatar is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// and the SEAWEEDFS_* keys consumed by runSeaweedfsStorageCheck.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck, performKeycloakLoginForm, decodeDotenvQuotedValue } = require("./personas");
|
||||
|
||||
@@ -45,6 +45,7 @@ async function clickFiderSsoButton(locator) {
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Fider tenant logo is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// runSeaweedfsStorageCheck.
|
||||
|
||||
const { test, expect } = require("./onion-test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const shared = require("./_shared");
|
||||
@@ -30,6 +30,7 @@ const AVATAR_PNG = Buffer.from(
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Matrix avatar is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
skipUnlessServiceEnabled("seaweedfs_frontend");
|
||||
test.skip(
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// draft preview and the posted attachment overlay.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const { performKeycloakLoginForm } = require("./personas");
|
||||
@@ -23,6 +23,7 @@ const shared = require("./_shared");
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: a Mattermost message attachment is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// via the Filer UI.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const shared = require("./_shared");
|
||||
@@ -22,6 +22,7 @@ const shared = require("./_shared");
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Open WebUI document is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const path = require("path");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const {
|
||||
@@ -121,6 +121,7 @@ async function uploadWebVideo(page) {
|
||||
}
|
||||
|
||||
test("seaweedfs: an uploaded PeerTube video is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(480_000));
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// UI. Login reuses the suite's `penpotOidcLogin` helper from `./_shared`.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const shared = require("./_shared");
|
||||
@@ -17,6 +17,7 @@ const shared = require("./_shared");
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Penpot image asset is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// SEAWEEDFS_* keys consumed by runSeaweedfsStorageCheck.
|
||||
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const shared = require("./_shared");
|
||||
@@ -38,6 +38,7 @@ function pixelfedAdminScenario() {
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Pixelfed photo is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { test, expect } = require("@playwright/test");
|
||||
const { resolveTimeout } = require("./timeouts");
|
||||
const { resolveTimeout, isOnionTarget } = require("./timeouts");
|
||||
const { skipUnlessServiceEnabled } = require("./service-gating");
|
||||
const { runSeaweedfsStorageCheck } = require("./personas");
|
||||
const shared = require("./_shared");
|
||||
@@ -21,6 +21,7 @@ const AVATAR_PNG = Buffer.from(
|
||||
test.use({ ignoreHTTPSErrors: true });
|
||||
|
||||
test("seaweedfs: an uploaded Taiga avatar is stored in the SeaweedFS bucket", async ({ page, browser }) => {
|
||||
test.skip(isOnionTarget(), "SeaweedFS filer UI is not a Tor surface on an onion node (headless backend)");
|
||||
skipUnlessServiceEnabled("seaweedfs");
|
||||
test.setTimeout(resolveTimeout(180_000));
|
||||
|
||||
|
||||
Reference in new issue
Block a user