diff --git a/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.html b/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.html index f9d7d720daff3f1bf8e0291d46e69c9a68e671de..7f5574fb4b4a3e18aa19c5a44094644825a59433 100644 --- a/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.html +++ b/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.html @@ -25,7 +25,9 @@ --> <ods-dropdown-menu buttonClass="rounded-full"> <admin-user-menu-button button-content [currentUserInitials]="currentUserInitials"></admin-user-menu-button> + <admin-user-logout-button (logout)="authenticationService.logout()"></admin-user-logout-button> + @if (apiRootStateResource.resource | hasLink: ApiRootLinkRel.DOCUMENTATIONS) { <div class="h-2"></div> <admin-documentation diff --git a/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.spec.ts b/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.spec.ts index 6dfc9edbe4ef03cb0858658709d9d64b6fce81b1..cb23876d9563a75acb6816a5cc5cca5285b2480a 100644 --- a/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.spec.ts +++ b/alfa-client/libs/admin/user-profile/src/lib/user-menu/user-profile-button-container.component.spec.ts @@ -23,7 +23,7 @@ */ import { ApiRootLinkRel, ApiRootResource } from '@alfa-client/api-root-shared'; import { createStateResource, StateResource } from '@alfa-client/tech-shared'; -import { dispatchEventFromFixture, existsAsHtmlElement, getElementComponentFromFixtureByCss, getElementFromFixture, mock, Mock, notExistsAsHtmlElement, } from '@alfa-client/test-utils'; +import { dispatchEventFromFixtureByType, existsAsHtmlElement, getElementComponentFromFixtureByCss, getElementFromFixture, mock, Mock, notExistsAsHtmlElement, } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { AuthenticationService } from '@authentication'; @@ -34,6 +34,7 @@ import { MockComponent } from 'ng-mocks'; import { createApiRootResource } from '../../../../../api-root-shared/test/api-root'; import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test'; import { DocumentationComponent } from '../documentation/documentation.component'; +import { AdminUserLogoutButtonComponent } from '../user-logout-button/admin-user-logout-button.component'; import { UserProfileButtonContainerComponent } from './user-profile.button-container.component'; describe('UserProfileButtonContainerComponent', () => { @@ -103,7 +104,7 @@ describe('UserProfileButtonContainerComponent', () => { describe('logout', () => { it('should call authService logout', () => { - dispatchEventFromFixture(fixture, popupLogoutButton, 'itemClicked'); + dispatchEventFromFixtureByType(fixture, AdminUserLogoutButtonComponent, 'logout'); expect(authenticationService.logout).toHaveBeenCalled(); }); diff --git a/alfa-client/libs/test-utils/src/lib/helper.ts b/alfa-client/libs/test-utils/src/lib/helper.ts index e847268dea4139a32915ce071ddd79fb20da4e39..66f33c3579e18d88743d3b23ea96703a2799bb04 100644 --- a/alfa-client/libs/test-utils/src/lib/helper.ts +++ b/alfa-client/libs/test-utils/src/lib/helper.ts @@ -55,6 +55,11 @@ export function dispatchEventFromFixture<T>(fixture: ComponentFixture<T>, elemen element.nativeElement.dispatchEvent(new Event(event)); } +export function dispatchEventFromFixtureByType<T, C>(fixture: ComponentFixture<T>, component: Type<C>, event: string): void { + const element: DebugElement = getDebugElementFromFixtureByType(fixture, component); + element.nativeElement.dispatchEvent(new Event(event)); +} + export function triggerEvent<T>(eventData: EventData<T>) { const element: DebugElement = getDebugElementFromFixtureByCss(eventData.fixture, eventData.elementSelector); element.triggerEventHandler(eventData.name, eventData.data);