Files
computer-playbook/roles/web-app-nextcloud/files/playwright/playwright.spec.js
kevinveenbirkenbachandClaude Opus 5 a2be4f081a feat(nextcloud): serve MCP through the Context Agent ExApp
Nextcloud carries no MCP server of its own, so the role runs the Context
Agent as an ExApp: render its container while MCP is enabled, wait for
its heartbeat, register it with AppAPI, add the MCP route, enable it, and
only then mint the app password clients present.

Split the credentials by origin. The shared secret between the AppAPI
proxy and the ExApp is generated by this deployment and stays a vault
credential; the app password is minted by Nextcloud through occ and is
persisted through sys-token-store instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 22:24:33 +02:00

31 lines
1.1 KiB
JavaScript

// Nextcloud Playwright spec — orchestration only. Shared state, locator
// helpers, modal dismissal, the login/logout flow, and the Talk admin
// verification live in `_shared.js`; each scenario is registered from its
// own `test-*.js` companion module so each test stays atomar and
// individually inspectable.
//
// `ignoreHTTPSErrors` is needed because the local stack typically uses the
// self-signed CA set up by `make trust-ca`, which the Playwright container
// does not trust by default.
const { test } = require("@playwright/test");
const shared = require("./_shared");
test.use({
ignoreHTTPSErrors: true,
});
test.beforeEach(shared.beforeEach);
require("./test-talk-admin-settings").register(shared);
require("./test-login-admin-oidc").register(shared);
require("./test-login-admin-native").register(shared);
require("./test-login-biber-oidc").register(shared);
require("./test-login-biber-ldap").register(shared);
require("./test-guest-persona").register(shared);
require("./test-mcp-guest").register(shared);
require("./test-biber-persona").register(shared);
require("./test-administrator-persona").register(shared);
require("./test-seaweedfs");