Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't persist current tab when display is locked #7882

Merged
merged 11 commits into from
Oct 11, 2024
Merged
Prev Previous commit
Next Next commit
Add tests
  • Loading branch information
shefalijoshi committed Oct 10, 2024
commit 95dcf282be9d3514d3a6f13d9e2e541505b09763
34 changes: 33 additions & 1 deletion e2e/tests/functional/plugins/tabs/tabs.e2e.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ test.describe('Tabs View', () => {
await page.goto(tabsView.url);

// select first tab
await page.getByLabel(`${table.name} tab`, { exact: true }).click();
await page.getByLabel(`${table.name} tab - selected`, { exact: true }).click();
// ensure table header visible
await expect(page.getByRole('searchbox', { name: 'message filter input' })).toBeVisible();

Expand Down Expand Up @@ -92,6 +92,38 @@ test.describe('Tabs View', () => {
// no canvas (i.e., sine wave generator) in the document should be visible
await expect(page.locator('canvas[id=webglContext]')).toBeHidden();
});

test('Changing the displayed tab should not be persisted if the view is locked', async ({
page
}) => {
await page.goto(tabsView.url);
//lock the view
await page.getByLabel('Unlocked for editing - click to lock.', { exact: true }).click();
// get the initial tab index
const initialTab = page.getByLabel(/- selected/);
// switch to a different tab in the view
const swgTab = page.getByLabel(`${sineWaveGenerator.name} tab`, { exact: true });
await swgTab.click();
await page.getByLabel(`${sineWaveGenerator.name} Object View`).isVisible();
// navigate away from the tabbed view and back
await page.getByLabel('Navigate up to parent').click();
await page.goto(tabsView.url);
// check that the initial tab is displayed
const lockedSelectedTab = page.getByLabel(/- selected/);
await expect(lockedSelectedTab).toHaveText(await initialTab.textContent());

//unlock the view
await page.getByLabel('Locked for editing - click to unlock.', { exact: true }).click();
// switch to a different tab in the view
await swgTab.click();
await page.getByLabel(`${sineWaveGenerator.name} Object View`).isVisible();
// navigate away from the tabbed view and back
await page.getByLabel('Navigate up to parent').click();
await page.goto(tabsView.url);
// check that the newly selected tab is displayed
const unlockedSelectedTab = page.getByLabel(/- selected/);
await expect(unlockedSelectedTab).toBeVisible();
});
});

test.describe('Tabs View CRUD', () => {
Expand Down
6 changes: 3 additions & 3 deletions src/plugins/tabs/components/TabsComponent.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
v-for="(tab, index) in tabsList"
:ref="tab.keyString"
:key="tab.keyString"
:aria-label="`${tab.domainObject.name} tab`"
:aria-label="`${tab.domainObject.name} tab${tab.keyString === currentTab.keyString ? ' - selected' : ''}`"
class="c-tab c-tabs-view__tab js-tab"
role="tab"
:class="{
'is-current': isCurrent(tab)
'is-current': tab.keyString === currentTab.keyString
}"
@click="showTab(tab, index)"
@mouseover.ctrl="showToolTip(tab)"
Expand Down Expand Up @@ -74,7 +74,7 @@
:key="tab.keyString"
:style="getTabStyles(tab)"
class="c-tabs-view__object-holder"
:class="{ 'c-tabs-view__object-holder--hidden': !isCurrent(tab) }"
:class="{ 'c-tabs-view__object-holder--hidden': tab.keyString !== currentTab.keyString }"
>
<ObjectView
v-if="shouldLoadTab(tab)"
Expand Down
1 change: 1 addition & 0 deletions src/ui/layout/BrowseBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<div class="l-browse-bar__start">
<button
v-if="hasParent"
aria-label="Navigate up to parent"
class="l-browse-bar__nav-to-parent-button c-icon-button c-icon-button--major icon-arrow-nav-to-parent"
title="Navigate up to parent"
@click="goToParent"
Expand Down
Loading