From c8235ddb6b53c9b1d8fe5514f71c37c09a952bc6 Mon Sep 17 00:00:00 2001 From: Jens Vannerum Date: Tue, 5 Apr 2022 15:24:32 +0200 Subject: [PATCH] 90155: Added queryParams to link menu options - Made it possible to add queryParams to a link in the menu --- .../menu/menu-item/link-menu-item.component.html | 4 +++- .../menu-item/link-menu-item.component.spec.ts | 15 +++++++++++++-- .../shared/menu/menu-item/models/link.model.ts | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/app/shared/menu/menu-item/link-menu-item.component.html b/src/app/shared/menu/menu-item/link-menu-item.component.html index e4b92284d2..f1ac32387c 100644 --- a/src/app/shared/menu/menu-item/link-menu-item.component.html +++ b/src/app/shared/menu/menu-item/link-menu-item.component.html @@ -1 +1,3 @@ -{{item.text | translate}} \ No newline at end of file +{{item.text | translate}} diff --git a/src/app/shared/menu/menu-item/link-menu-item.component.spec.ts b/src/app/shared/menu/menu-item/link-menu-item.component.spec.ts index 43e17b8f03..41bc9feaeb 100644 --- a/src/app/shared/menu/menu-item/link-menu-item.component.spec.ts +++ b/src/app/shared/menu/menu-item/link-menu-item.component.spec.ts @@ -5,6 +5,7 @@ import { By } from '@angular/platform-browser'; import { LinkMenuItemComponent } from './link-menu-item.component'; import { RouterLinkDirectiveStub } from '../../testing/router-link-directive.stub'; import { environment } from '../../../../environments/environment'; +import { QueryParamsDirectiveStub } from '../../testing/query-params-directive.stub'; describe('LinkMenuItemComponent', () => { let component: LinkMenuItemComponent; @@ -12,19 +13,21 @@ describe('LinkMenuItemComponent', () => { let debugElement: DebugElement; let text; let link; + let queryParams; function init() { text = 'HELLO'; link = 'http://google.com'; + queryParams = {params: true}; } beforeEach(waitForAsync(() => { init(); TestBed.configureTestingModule({ imports: [TranslateModule.forRoot()], - declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub], + declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub, QueryParamsDirectiveStub], providers: [ - { provide: 'itemModelProvider', useValue: { text: text, link: link } }, + { provide: 'itemModelProvider', useValue: { text: text, link: link, queryParams: queryParams } }, ], schemas: [NO_ERRORS_SCHEMA] }) @@ -54,4 +57,12 @@ describe('LinkMenuItemComponent', () => { expect(routerLinkQuery.length).toBe(1); expect(routerLinkQuery[0].routerLink).toBe(environment.ui.nameSpace + link); }); + + it('should have the right queryParams attribute', () => { + const queryDes = fixture.debugElement.queryAll(By.directive(QueryParamsDirectiveStub)); + const routerParamsQuery = queryDes.map((de) => de.injector.get(QueryParamsDirectiveStub)); + + expect(routerParamsQuery.length).toBe(1); + expect(routerParamsQuery[0].queryParams).toBe(queryParams); + }); }); diff --git a/src/app/shared/menu/menu-item/models/link.model.ts b/src/app/shared/menu/menu-item/models/link.model.ts index a5b3671f62..2b80a808f9 100644 --- a/src/app/shared/menu/menu-item/models/link.model.ts +++ b/src/app/shared/menu/menu-item/models/link.model.ts @@ -1,5 +1,6 @@ import { MenuItemModel } from './menu-item.model'; import { MenuItemType } from '../../initial-menus-state'; +import { Params } from '@angular/router'; /** * Model representing an Link Menu Section @@ -8,4 +9,5 @@ export class LinkMenuItemModel implements MenuItemModel { type = MenuItemType.LINK; text: string; link: string; + queryParams?: Params | null; }