import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync, } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { TranslateLoader, TranslateModule, TranslateService, } from '@ngx-translate/core'; import { TranslateLoaderMock } from '../mocks/translate-loader.mock'; import { LoadingComponent } from './loading.component'; describe('LoadingComponent (inline template)', () => { let comp: LoadingComponent; let fixture: ComponentFixture<LoadingComponent>; let de: DebugElement; let el: HTMLElement; beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: TranslateLoaderMock, }, }), LoadingComponent, ], providers: [TranslateService], }).compileComponents(); // compile template and css })); beforeEach(() => { fixture = TestBed.createComponent(LoadingComponent); comp = fixture.componentInstance; // LoadingComponent test instance comp.message = 'test message'; fixture.detectChanges(); // query for the message <label> by CSS element selector de = fixture.debugElement.query(By.css('label')); el = de.nativeElement; }); it('should create', () => { expect(comp).toBeTruthy(); }); it('should display default message', () => { fixture.detectChanges(); expect(el.textContent).toContain(comp.message); }); it('should display input message', () => { comp.message = 'Test Message'; fixture.detectChanges(); expect(el.textContent).toContain('Test Message'); }); });