diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts b/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts index 17e297333ea3631af1b043e0667d13e6bce6c2b6..1ecddaba7beaa07040e635633a57f8da7cd6cf21 100644 --- a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts +++ b/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts @@ -1,10 +1,13 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { MoreItemButtonComponent } from './more-item-button.component'; +import { dispatchEventFromFixture, getElementFromFixture } from '@alfa-client/test-utils'; -describe('FlatButtonComponent', () => { +describe('MoreItemButtonComponent', () => { let component: MoreItemButtonComponent; let fixture: ComponentFixture<MoreItemButtonComponent>; + const buttonSelector: string = 'button'; + beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [MoreItemButtonComponent], @@ -18,4 +21,32 @@ describe('FlatButtonComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + it('should show label', () => { + const text: string = 'test-text'; + component.label = text; + + fixture.detectChanges(); + + const buttonElement: HTMLButtonElement = getElementFromFixture(fixture, buttonSelector); + expect(buttonElement.textContent.trim()).toEqual(text); + }); + + it.each([false, true])('should use disabled "%s"', (disabled) => { + const text: string = 'test-text'; + component.disabled = disabled; + + fixture.detectChanges(); + + const buttonElement: HTMLButtonElement = getElementFromFixture(fixture, buttonSelector); + expect(buttonElement.disabled).toBe(disabled); + }); + + it('should emit clickEmitter', () => { + component.clickEmitter.emit = jest.fn(); + + dispatchEventFromFixture(fixture, buttonSelector, 'click'); + + expect(component.clickEmitter.emit).toHaveBeenCalled(); + }); });