></svg>
</a>
</li>
- <cds-overflow-menu-option
- (click)="openAboutModal()"
- i18n
- >About</cds-overflow-menu-option
- >
- <cds-overflow-menu-option
- (click)="openFeedbackModal()"
- i18n
- >Report an issue...</cds-overflow-menu-option
- >
+ <cds-overflow-menu-option (click)="openAboutModal()"
+ i18n>About</cds-overflow-menu-option>
+ @if (configOptPermission.read) {
+ <cds-overflow-menu-option (click)="openFeedbackModal()"
+ i18n>Report an issue...</cds-overflow-menu-option>
+ }
</cds-overflow-menu>
<ng-template #customTrigger>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { By } from '@angular/platform-browser';
import { RouterTestingModule } from '@angular/router/testing';
import { SharedModule } from '~/app/shared/shared.module';
+import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
+import { Permission, Permissions } from '~/app/shared/models/permissions';
import { configureTestBed } from '~/testing/unit-test-helper';
import { DashboardHelpComponent } from './dashboard-help.component';
describe('DashboardHelpComponent', () => {
let component: DashboardHelpComponent;
let fixture: ComponentFixture<DashboardHelpComponent>;
+ let permissions: Permissions;
configureTestBed({
imports: [HttpClientTestingModule, SharedModule, RouterTestingModule],
- declarations: [DashboardHelpComponent]
+ declarations: [DashboardHelpComponent],
+ providers: [AuthStorageService]
});
beforeEach(() => {
+ permissions = new Permissions({});
+ permissions.configOpt = new Permission(['read']);
+ spyOn(TestBed.inject(AuthStorageService), 'getPermissions').and.returnValue(permissions);
fixture = TestBed.createComponent(DashboardHelpComponent);
component = fixture.componentInstance;
fixture.detectChanges();
it('should create', () => {
expect(component).toBeTruthy();
});
+
+ it('should hide report issue when config-opt is not readable', () => {
+ permissions.configOpt = new Permission([]);
+ (TestBed.inject(AuthStorageService).getPermissions as jasmine.Spy).and.returnValue(permissions);
+
+ fixture = TestBed.createComponent(DashboardHelpComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+
+ const options = fixture.debugElement.queryAll(By.css('cds-overflow-menu-option'));
+ expect(options.length).toBe(3);
+ });
});
import { Component, OnInit } from '@angular/core';
import { Icons } from '~/app/shared/enum/icons.enum';
+import { Permission } from '~/app/shared/models/permissions';
+import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
import { DocService } from '~/app/shared/services/doc.service';
import { AboutComponent } from '../about/about.component';
export class DashboardHelpComponent implements OnInit {
docsUrl: string;
icons = Icons;
+ configOptPermission: Permission;
constructor(
private docService: DocService,
- private modalCdsService: ModalCdsService
- ) {}
+ private modalCdsService: ModalCdsService,
+ private authStorageService: AuthStorageService
+ ) {
+ this.configOptPermission = this.authStorageService.getPermissions().configOpt;
+ }
ngOnInit() {
this.docService.subscribeOnce('dashboard', (url: string) => {