Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion tests/Unit/Settings/ConnectionsDeclarationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,10 @@ public function testTheSchemaRefusesAMisspelledFieldAndABadKey(): void {
* @return void
*/
public function testTheFileNamesThisApp(): void {
$infoXml = simplexml_load_file($this->root() . '/appinfo/info.xml');
// Parse the string, not the file: Nextcloud's lib/base.php nulls libxml's
// external entity loader, so simplexml_load_file() returns false in CI
// for a well-formed file. See NextcloudFloorMatrixTest::declaredFloor().
$infoXml = simplexml_load_string($this->read(path: 'appinfo/info.xml'));

$this->assertNotFalse(condition: $infoXml);
$this->assertSame(expected: 'keepiq', actual: (string) $infoXml->id);
Expand Down
10 changes: 8 additions & 2 deletions tests/e2e/workflows/integrations-page.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
* Locale: nothing forces the E2E language, so statuses are read from the API
* and rows are found by their declared titles, which are not translated.
*
* Written, not yet run: it needs an instance with both apps (tasks.md 5.1).
* It needs an instance with both apps (tasks.md 5.1). First run in CI on
* 2026-09-15 (keepiq run 34955589876), where the row lookup below was fixed.
*
* @e2e openspec/changes/adopt-connection-registry/specs/admin-integrations/spec.md#the-page-lists-only-the-rows-of-keepiq
* @e2e openspec/changes/adopt-connection-registry/specs/admin-integrations/spec.md#add-integration-goes-to-integriq
Expand Down Expand Up @@ -125,9 +126,14 @@ test.describe('Integrations over the connection registry', () => {
}

await openIntegrations(page)
// Match the row by its Connection cell, not by the row's accessible name:
// that name starts with the "Select row" checkbox, so a `^title` pattern
// on it never matches.
for (const { title } of DECLARED) {
await expect(
page.getByRole('row', { name: new RegExp(`^${title}\\b`, 'i') }),
page.getByRole('row').filter({
has: page.getByRole('cell', { name: title, exact: true }),
}),
).toHaveCount(1)
}
})
Expand Down
Loading