amos-ionic-logging
Version:
Components for Ionic logging
94 lines (69 loc) • 2.5 kB
text/typescript
/* eslint-disable no-magic-numbers */
import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing";
import { FormsModule } from "@angular/forms";
import { IonicModule } from "@ionic/angular";
import { LoggingService } from "ionic-logging-service";
import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
import { LoggingViewerLevelsComponent } from "./logging-viewer-levels.component";
describe("LoggingViewerLevelsComponent", () => {
let component: LoggingViewerLevelsComponent;
let fixture: ComponentFixture<LoggingViewerLevelsComponent>;
let loggingService: LoggingService;
let loggingViewerFilterService: LoggingViewerFilterService;
const loggerStub = jasmine.createSpyObj("logger", ["entry", "exit"]);
const loggingServiceStub = jasmine.createSpyObj("loggingServiceStub",
["getLogger"]);
loggingServiceStub.getLogger.and.returnValue(loggerStub);
beforeEach(waitForAsync(() => {
TestBed
.configureTestingModule({
declarations: [
LoggingViewerLevelsComponent,
],
imports: [
FormsModule,
IonicModule,
],
providers: [
{ provide: LoggingService, useValue: loggingServiceStub },
LoggingViewerFilterService,
],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(LoggingViewerLevelsComponent);
component = fixture.componentInstance;
loggingService = TestBed.inject(LoggingService);
loggingViewerFilterService = TestBed.inject(LoggingViewerFilterService);
});
describe("constructor", () => {
it("gets correct named logger", () => {
fixture.detectChanges();
expect(loggingServiceStub.getLogger).toHaveBeenCalledWith("Ionic.Logging.Viewer.Levels.Component");
});
});
describe("filterChangedSubscription", () => {
it("event updates selected level", () => {
fixture.detectChanges();
if (loggingViewerFilterService.level === "INFO") {
loggingViewerFilterService.level = "DEBUG";
} else {
loggingViewerFilterService.level = "INFO";
}
expect(component.selectedLevel).toBe(loggingViewerFilterService.level);
});
});
describe("onLevelChanged", () => {
it("updates value in filter service", () => {
fixture.detectChanges();
if (component.selectedLevel === "INFO") {
component.selectedLevel = "DEBUG";
} else {
component.selectedLevel = "INFO";
}
component.onLevelChanged();
expect(loggingViewerFilterService.level).toBe(component.selectedLevel);
});
});
});