Select Git revision
-
Thorge Petersen authoredThorge Petersen authored
user-profile-button-container.component.spec.ts 2.52 KiB
import {
dispatchEventFromFixture,
getElementFromFixture,
mock,
Mock,
} from '@alfa-client/test-utils';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { LogoutIconComponent, PopupComponent, PopupListItemComponent } from '@ods/system';
import { AuthenticationService } from 'authentication';
import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
import { MockComponent } from 'ng-mocks';
import { UserProfileButtonContainerComponent } from './user-profile.button-container.component';
describe('UserProfileButtonContainerComponent', () => {
let component: UserProfileButtonContainerComponent;
let fixture: ComponentFixture<UserProfileButtonContainerComponent>;
const authenticationService: Mock<AuthenticationService> = mock(AuthenticationService);
const popupButtonContent: string = getDataTestIdOf('popup-button-content');
const popupLogoutButton: string = getDataTestIdOf('popup-logout-button');
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [UserProfileButtonContainerComponent],
imports: [
RouterTestingModule,
MockComponent(PopupComponent),
MockComponent(PopupListItemComponent),
MockComponent(LogoutIconComponent),
],
providers: [
{
provide: AuthenticationService,
useValue: authenticationService,
},
],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(UserProfileButtonContainerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('ngOnInit', () => {
it('should call authService to get current user initials', () => {
component.ngOnInit();
expect(authenticationService.getCurrentUserInitials).toHaveBeenCalled();
});
});
describe('popup button', () => {
it('should show initials', () => {
component.currentUserInitials = 'AV';
fixture.detectChanges();
const popupButtonContentElement: HTMLElement = getElementFromFixture(
fixture,
popupButtonContent,
);
expect(popupButtonContentElement.textContent.trim()).toEqual('AV');