diff --git a/bridge/client/app/_views/ktb-sequence-view/ktb-sequence-view.component.ts b/bridge/client/app/_views/ktb-sequence-view/ktb-sequence-view.component.ts index 6e6ed58aaf..4ae8f6729b 100644 --- a/bridge/client/app/_views/ktb-sequence-view/ktb-sequence-view.component.ts +++ b/bridge/client/app/_views/ktb-sequence-view/ktb-sequence-view.component.ts @@ -416,9 +416,12 @@ export class KtbSequenceViewComponent implements OnDestroy { } public loadSequenceFilters(projectName: string): void { - this.router.navigate([], { - relativeTo: this.route, - queryParams: this.apiService.getSequenceFilters(projectName), + const queryParams = this.apiService.getSequenceFilters(projectName); + if (!Object.keys(queryParams).length) { + return; + } + this.router.navigate(['project', projectName, 'sequence'], { + queryParams, replaceUrl: true, }); } diff --git a/bridge/cypress/integration/sequences.spec.ts b/bridge/cypress/integration/sequences.spec.ts index 699c145e61..7f9df66003 100644 --- a/bridge/cypress/integration/sequences.spec.ts +++ b/bridge/cypress/integration/sequences.spec.ts @@ -1,6 +1,7 @@ import { SequencesPage } from '../support/pageobjects/SequencesPage'; import { interceptProjectBoard } from '../support/intercept'; import EnvironmentPage from '../support/pageobjects/EnvironmentPage'; +import { ProjectBoardPage } from '../support/pageobjects/ProjectBoardPage'; describe('Sequences', () => { const sequencePage = new SequencesPage(); @@ -127,6 +128,12 @@ describe('Sequences', () => { sequencePage.assertSequenceCount(1).assertLoadOlderSequencesButtonExists(false); }); + it('should have active menu button if navigated from one sub page to this one', () => { + const projectBoardPage = new ProjectBoardPage(); + environmentPage.intercept().visit('sockshop'); + projectBoardPage.clickSequenceMenuitem().assertOnlySequencesViewSelected(); + }); + describe('filtering', () => { it('should show a filtered list if filters are applied for Service', () => { sequencePage.visit('sockshop'); diff --git a/bridge/cypress/support/pageobjects/ProjectBoardPage.ts b/bridge/cypress/support/pageobjects/ProjectBoardPage.ts index e60a1a122f..cbe934f186 100644 --- a/bridge/cypress/support/pageobjects/ProjectBoardPage.ts +++ b/bridge/cypress/support/pageobjects/ProjectBoardPage.ts @@ -5,10 +5,10 @@ import ServicesPage from './ServicesPage'; import { interceptProjectBoard } from '../intercept'; enum View { - SERVICE_VIEW = 'service-view', - ENVIRONMENT_VIEW = 'environment-view', - SEQUENCE_VIEW = 'sequence-view', - SETTINGS_VIEW = 'settings-view', + SERVICE_VIEW = 'services', + ENVIRONMENT_VIEW = 'environment', + SEQUENCE_VIEW = 'sequences', + SETTINGS_VIEW = 'settings', } export class ProjectBoardPage { @@ -103,6 +103,15 @@ export class ProjectBoardPage { .assertSettingsViewSelected(view === View.SETTINGS_VIEW); } + public clickSequenceMenuitem(): this { + return this.clickMenuItem(View.SEQUENCE_VIEW); + } + + private clickMenuItem(view: View): this { + cy.byTestId(`ktb-${view}-menu-button`).click(); + return this; + } + private assertMenuSelected(selector: string, status: boolean): this { cy.byTestId(selector).should(status ? 'have.class' : 'not.have.class', 'active'); return this;