Files
computer-playbook/roles/web-app-taiga/files/playwright/playwright.spec.js
kevinveenbirkenbachandClaude Opus 4.8 f17d68fae3 feat(web-app): SeaweedFS S3 object-store integration for 9 Tier A roles
Wire nine database-backed web-app roles to the shared SeaweedFS object store
via the engine-agnostic objstore lookup, following the existing consumer recipe
(declare the seaweedfs service, render the app S3 config from
lookup('objstore', application_id, ...), add the e2e test). Each app's S3
config keys were verified against the upstream docs/source, and all honor
SeaweedFS path-style addressing + the internal http endpoint:

- fider:     BLOB_STORAGE=s3 + BLOB_STORAGE_S3_*
- snipe-it:  split s3_private/s3_public disks, single bucket via BUCKET_ROOT, *_AWS_PATH_STYLE
- mobilizon: Uploader.S3 + ExAws (private)
- decidim:   ActiveStorage amazon service, force_path_style
- taiga:     django-storages, AWS_S3_ADDRESSING_STYLE=path
- shopware:  Flysystem amazon-s3 adapter, use_path_style_endpoint
- magento:   remote_storage driver aws-s3 + endpoint
- matrix:    s3_storage_provider module baked into the image + media_storage_providers
- gitlab:    consolidated object storage, single bucket split into per-type virtual buckets, path_style

Both object-store guards (test_database_requires_seaweedfs,
test_seaweedfs_consumer_playwright) pass; autoformat clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 15:29:55 +02:00

25 lines
899 B
JavaScript

// Taiga Playwright spec — orchestration only. Shared state, locator
// helpers, and the login/logout flow live in `_shared.js`; each scenario
// is registered from its own `test-*.js` companion module so each test
// stays atomar and individually inspectable.
const { test } = require("@playwright/test");
const shared = require("./_shared");
test.use({
ignoreHTTPSErrors: true,
});
test.beforeEach(shared.beforeEach);
require("./test-login-oidc").register(shared);
require("./test-login-native").register(shared);
require("./test-public-discover-themed-surface").register(shared);
require("./test-public-discover-hides-local-login").register(shared);
require("./test-themed-routes").register(shared);
require("./test-guest-persona").register(shared);
require("./test-biber-persona").register(shared);
require("./test-administrator-persona").register(shared);
require("./test-seaweedfs");