diff --git a/apps/data-management/e2e/specs/sites.spec.ts b/apps/data-management/e2e/specs/sites.spec.ts index a5f8f084..3f27c023 100644 --- a/apps/data-management/e2e/specs/sites.spec.ts +++ b/apps/data-management/e2e/specs/sites.spec.ts @@ -115,6 +115,39 @@ test.describe('sites and workspaces', () => { await expect(mutableThingRow).toBeVisible() }) + test('modifier-clicking a site opens its details in a new tab', async ({ + page, + }) => { + await authenticateSession(page, users.owner.email, users.owner.password) + await page.goto('/sites') + await selectWorkspace(page, fixtures.workspaces.public.name) + + const siteRow = page.locator('tr').filter({ + hasText: fixtures.things.public.name, + }) + await expect(siteRow).toBeVisible() + + const siteLink = siteRow.getByRole('link', { + name: fixtures.things.public.name, + }) + const newPagePromise = page.context().waitForEvent('page') + await siteLink.click({ + modifiers: [process.platform === 'darwin' ? 'Meta' : 'Control'], + }) + const newPage = await newPagePromise + + await expect(page).toHaveURL(/\/sites$/) + await expect(newPage).toHaveURL( + new RegExp(`/sites/${fixtures.things.public.id}$`) + ) + await newPage.close() + + await siteLink.click() + await expect(page).toHaveURL( + new RegExp(`/sites/${fixtures.things.public.id}$`) + ) + }) + test('owner can register a site with metadata and see the saved values on site details', async ({ page, }) => { diff --git a/apps/data-management/src/pages/Sites.vue b/apps/data-management/src/pages/Sites.vue index 95d57143..e6911625 100644 --- a/apps/data-management/src/pages/Sites.vue +++ b/apps/data-management/src/pages/Sites.vue @@ -69,7 +69,6 @@ multi-sort item-value="id" class="elevation-3 owned-sites-table" - @click:row="onRowClick" color="primary" :hover="coloredThings?.length > 0 && isPageLoaded" :style="{ 'max-height': `200vh` }" @@ -106,15 +105,45 @@
+ +