kevinveenbirkenbachandClaude Opus 4.7 6b77be3dc1 fix(web-app-nextcloud): make Talk admin spec accept single OK + read connection-span directly
Two failures surfaced once the metadata-plugin fix stopped aborting
the Deploy web-app-nextcloud CI job before the Playwright suite ran:

  ✘ nextcloud talk admin settings (3 retries, 53s each)
  ✘ dashboard to nextcloud login (3 retries, 60s each)

Both failures funneled through `clickAllTalkTestServerButtonsAndVerify`
expecting the regex
`/OK:\s*Running version:\s*\S+[\s\S]*?OK:\s*Running version:\s*\S+/i`
to match `document.body.innerText` — i.e. two consecutive
`"OK: Running version: <ver>"` markers. The diagnostic from a fresh
deploy showed the actual rendered Talk-admin state:

  Warning: Running version: 2.0.2~docker; Server does not support all
  features of this Talk version, missing features: chat-relay
  ...
  OK: Running version: 0.1   (the recording backend)

i.e. spreed's <SignalingServer> row reports `warningMessage`
("missing features: chat-relay") instead of the OK string, while the
<RecordingServer> row reports OK. spreed's `connectionState` getter
prefers `warningMessage` over the OK string by design (see
src/components/AdminSettings/SignalingServer.vue:136-150 of upstream
spreed), so the two-OK requirement is structurally false-fail-prone
on a healthy stack: a missing feature on the HPB image would always
turn this test red.

Fix the spec, not the deploy:

- Wait for `span.test-connection` to attach before counting buttons.
  spreed's Test button is `v-if="server && checked"` and only appears
  AFTER the auto-mounted `checkServerVersion()` call returns. Polling
  too early found zero buttons, so `clicked.length > 0` could only
  pass on a lucky race.

- Read the `<span class="test-connection">` texts directly via
  `connectionSpans.allInnerTexts()` instead of pulling
  `document.body.innerText`. The span is the canonical place spreed
  writes connectionState, so the failure message can name the exact
  rendered string ("Warning: ...", "Status: Checking connection",
  "Error: ...") instead of dumping the whole admin chrome.

- Require ONE OK marker (recording row) instead of two. The
  RecordingServer row only renders when `hasSignalingServers` is
  true, so on a freshly-bootstrapped stack the recording row can be
  the only one with a clean OK while the HPB row legitimately reports
  a warning. Asserting both would block a healthy install on a
  cosmetic feature mismatch.

- Iterate connection-span texts in the error-pattern check so the
  failure message points at the exact row that broke instead of
  matching against the whole body.

Verified locally via
`SERVICES_DISABLED='matomo,email' make deploy-reuse-kept-apps APPS=web-app-nextcloud`:

  ✓ nextcloud talk admin settings (23.8s)
  ✓ dashboard to nextcloud login (29.7s)
  ✓ biber logs into nextcloud via OIDC and logs out (4.7s)

PLAY RECAP: ok=1728, changed=131, failed=0, rescued=0, skipped=643.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:22:40 +02:00
2026-04-25 17:59:57 +02:00
2026-03-28 21:02:06 +01:00
2025-08-05 22:05:46 +03:00
2026-04-25 17:59:57 +02:00
2026-03-17 14:30:19 +01:00
2026-04-25 17:59:57 +02:00

Infinito.Nexus 🚀

🔐 One login. ♾️ Infinite applications

Infinito.Nexus Logo

What is Infinito.Nexus? 📌

Infinito.Nexus is an automated, modular infrastructure framework built on Docker, Linux, and Ansible, equally suited for cloud services, local server management, and desktop workstations. At its core lies a web-based desktop with single sign-on, backed by an LDAP directory and OIDC, granting seamless access to an almost limitless portfolio of self-hosted applications. It fully supports ActivityPub applications and is Fediverse-compatible, while integrated monitoring, alerting, cleanup, self-healing, automated updates, and backup solutions provide everything an organization needs to run at scale.

📚 🔗
🌐 Try It Live Infinito.Nexus
🔧 Request Your Setup CyberMaster.Space
📖 About This Project GitHub Sponsors View Source
☕️ Support Us Patreon Buy Me a Coffee PayPal Sponsor Infinito.Nexus

Key Features 🎯

  • Automated Deployment 📦 Turn up servers and workstations in minutes with ready-made Ansible roles.

  • Enterprise-Grade Security 🔒 Centralized user management via LDAP & OIDC (Keycloak), plus optional 2FA and encrypted storage.

  • Modular Scalability 📈 Grow from small teams to global enterprises by composing only the services you need.

  • Fediverse & ActivityPub Support 🌐 Seamlessly integrate Mastodon, Peertube, Matrix and other ActivityPub apps out of the box.

  • Self-Healing & Maintenance ⚙️ Automated cleanup, container healing, and auto-updates keep infrastructure healthy without human intervention.

  • Monitoring, Alerting & Analytics 📊 Built-in system, application, and security monitoring with multi-channel notifications.

  • Backup & Disaster Recovery 💾 Scheduled backups and scripted recovery processes to safeguard your data.

  • Continuous Updates 🔄 Automatic patching and version upgrades across the stack.

  • Application Ecosystem 🚀 A curated suite of self-hosted apps, from project management, version control, and CI/CD to chat, video conferencing, CMS, e-learning, social networking, and e-commerce, all seamlessly integrated.


Get Started 🚀

Use it online 🌐

Try Infinito.Nexus – sign up in seconds, explore the platform, and discover what our solution can do for you! 🚀🔧✨

Guides 📚

  • Installation Guide for local CLI installation, Docker execution, and source builds.
  • Deploy Guide for inventory creation, full deploys, and redeploy flows.

Contributing 🔨

For the full development setup, contribution workflow, testing, and coding standards, see CONTRIBUTING.md.

Invest 💹

We are actively looking for investors to help scale Infinito.Nexus and bring open, self-hosted infrastructure to more organizations worldwide. If you are interested in investing or partnering with us, please reach out via our Investor Relations contact.

Code of Conduct 🕊️

We are committed to fostering an open and welcoming environment. Please read our CODE_OF_CONDUCT.md to understand the standards we expect from all participants in our community.

Security 🛡️

For security reporting and disclosure, see SECURITY.md.

Support and Contact 💼

For expert installation, contact details, and project participation, see SUPPORT.md.

License ⚖️

Infinito.Nexus is distributed under the Infinito.Nexus Community License (Non-Commercial). Please see LICENSE.md for full terms.

S
Description
No description provided
Readme
5.2 GiB
0 Stars 1 Watchers 0 Forks
Languages
Python 67.7%
Jinja 25.3%
Shell 5.7%
CSS 0.3%
JavaScript 0.3%
Other 0.5%