diff --git a/springwolf-ui/src/app/components/channels/channel-main/channel-main.component.spec.ts b/springwolf-ui/src/app/components/channels/channel-main/channel-main.component.spec.ts new file mode 100644 index 000000000..3c30f6538 --- /dev/null +++ b/springwolf-ui/src/app/components/channels/channel-main/channel-main.component.spec.ts @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { AsyncApiService } from "../../../service/asyncapi/asyncapi.service"; +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { ChannelMainComponent } from "./channel-main.component"; +import { PublisherService } from "../../../service/publisher.service"; +import { MatDivider } from "@angular/material/divider"; +import { MatTab, MatTabGroup, MatTabHeader } from "@angular/material/tabs"; +import { JsonComponent } from "../../json/json.component"; +import { MarkdownModule } from "ngx-markdown"; + +describe("ChannelMainComponent", () => { + let component: ChannelMainComponent; + let fixture: ComponentFixture; + + let mockedAsyncApiService = { + getAsyncApi: jest.fn(), + }; + let mockedPublisherService = { + getAsyncApi: jest.fn(), + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ + MatDivider, + MatTabGroup, + MatTab, + MatTabHeader, + MarkdownModule.forRoot(), + ], + declarations: [ChannelMainComponent, JsonComponent], + providers: [ + { provide: AsyncApiService, useValue: mockedAsyncApiService }, + { provide: PublisherService, useValue: mockedPublisherService }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(ChannelMainComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/springwolf-ui/src/app/components/channels/channels.component.spec.ts b/springwolf-ui/src/app/components/channels/channels.component.spec.ts new file mode 100644 index 000000000..66d9093ca --- /dev/null +++ b/springwolf-ui/src/app/components/channels/channels.component.spec.ts @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { AsyncApiService } from "../../service/asyncapi/asyncapi.service"; +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { ChannelsComponent } from "./channels.component"; +import { MatAccordion } from "@angular/material/expansion"; + +describe("ChannelsComponent", () => { + let component: ChannelsComponent; + let fixture: ComponentFixture; + + let mockedAsyncApiService = { + getAsyncApi: jest.fn(), + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [MatAccordion], + declarations: [ChannelsComponent], + providers: [ + { provide: AsyncApiService, useValue: mockedAsyncApiService }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(ChannelsComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/springwolf-ui/src/app/components/header/header.component.spec.ts b/springwolf-ui/src/app/components/header/header.component.spec.ts new file mode 100644 index 000000000..a75b85ebb --- /dev/null +++ b/springwolf-ui/src/app/components/header/header.component.spec.ts @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { MatToolbarModule } from "@angular/material/toolbar"; +import { HeaderComponent } from "./header.component"; +import { ComponentFixture, TestBed } from "@angular/core/testing"; + +describe("HeaderComponent", () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [HeaderComponent], + imports: [MatToolbarModule], + }).compileComponents(); + + fixture = TestBed.createComponent(HeaderComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/springwolf-ui/src/app/components/info/info.component.spec.ts b/springwolf-ui/src/app/components/info/info.component.spec.ts new file mode 100644 index 000000000..7a50dd59e --- /dev/null +++ b/springwolf-ui/src/app/components/info/info.component.spec.ts @@ -0,0 +1,74 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { InfoComponent } from "./info.component"; +import { AsyncApiService } from "../../service/asyncapi/asyncapi.service"; +import { of } from "rxjs/internal/observable/of"; +import { MatChipsModule } from "@angular/material/chips"; +import { MarkdownModule } from "ngx-markdown"; + +describe("InfoComponent", function () { + let component: InfoComponent; + let fixture: ComponentFixture; + + let mockedAsyncApiService!: { getAsyncApi: jest.Mock }; + + let info = { + title: "title", + version: "1.0.0", + description: "example", + contact: { + url: "https://test.com", + email: { + name: "springwolf", + href: "link", + }, + }, + license: { + name: "Apache License 2.0", + }, + asyncApiJson: null, + }; + + beforeEach(() => { + mockedAsyncApiService = { + getAsyncApi: jest.fn(), + }; + + TestBed.configureTestingModule({ + declarations: [InfoComponent], + imports: [MatChipsModule, MarkdownModule.forRoot()], + providers: [ + { provide: AsyncApiService, useValue: mockedAsyncApiService }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(InfoComponent as any); + component = fixture.debugElement.componentInstance; + component.info = info; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); + + it("should render the title", async () => { + mockedAsyncApiService.getAsyncApi.mockReturnValue(of()); + + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector("h1").textContent).toContain("title"); + expect(compiled.querySelector("h5").textContent).toContain( + " API version 1.0.0 - Download AsyncAPI file" + ); + }); + + it("should render the license information", async () => { + mockedAsyncApiService.getAsyncApi.mockReturnValue(of()); + + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector("p").textContent).toContain( + "License: Apache License 2.0 https://test.com springwolf " + ); + }); +}); diff --git a/springwolf-ui/src/app/components/schemas/schema/schema.component.spec.ts b/springwolf-ui/src/app/components/schemas/schema/schema.component.spec.ts new file mode 100644 index 000000000..2ebc7315b --- /dev/null +++ b/springwolf-ui/src/app/components/schemas/schema/schema.component.spec.ts @@ -0,0 +1,48 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { ComponentFixture, TestBed } from "@angular/core/testing"; + +import { SchemaComponent } from "./schema.component"; +import { SchemaRangeComponent } from "../range/schema-range.component"; +import { MatChipsModule } from "@angular/material/chips"; +import { MarkdownModule } from "ngx-markdown"; +import { Example } from "../../../models/example.model"; +import { JsonComponent } from "../../json/json.component"; + +describe("SchemaComponent", () => { + let component: SchemaComponent; + let fixture: ComponentFixture; + + let mockedSchemaRangeComponent = jest.mock("../range/schema-range.component"); + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [SchemaComponent, SchemaRangeComponent, JsonComponent], + imports: [MatChipsModule, MarkdownModule.forRoot()], + providers: [ + { provide: SchemaRangeComponent, useValue: mockedSchemaRangeComponent }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(SchemaComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); + + it("should render primitive string", async () => { + component.schema = { + title: "String", + type: "string", + example: new Example("string"), + }; + + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector(".type").textContent).toContain("string"); + expect(compiled.querySelector(".example").textContent).toContain( + "example: string" + ); + }); +}); diff --git a/springwolf-ui/src/app/components/schemas/schemas.component.spec.ts b/springwolf-ui/src/app/components/schemas/schemas.component.spec.ts new file mode 100644 index 000000000..cb792c76c --- /dev/null +++ b/springwolf-ui/src/app/components/schemas/schemas.component.spec.ts @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { SchemasComponent } from "./schemas.component"; +import { AsyncApiService } from "../../service/asyncapi/asyncapi.service"; +import { MatAccordion } from "@angular/material/expansion"; + +describe("SchemasComponent", () => { + let component: SchemasComponent; + let fixture: ComponentFixture; + + let mockedAsyncApiService = { + getAsyncApi: jest.fn(), + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [MatAccordion], + declarations: [SchemasComponent], + providers: [ + { provide: AsyncApiService, useValue: mockedAsyncApiService }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(SchemasComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/springwolf-ui/src/app/components/servers/servers.component.spec.ts b/springwolf-ui/src/app/components/servers/servers.component.spec.ts new file mode 100644 index 000000000..e40a5eb36 --- /dev/null +++ b/springwolf-ui/src/app/components/servers/servers.component.spec.ts @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { ServersComponent } from "./servers.component"; +import { AsyncApiService } from "../../service/asyncapi/asyncapi.service"; + +describe("ServerComponent", () => { + let component: ServersComponent; + let fixture: ComponentFixture; + + let mockedAsyncApiService!: { getAsyncApi: jest.Mock }; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ServersComponent], + providers: [ + { provide: AsyncApiService, useValue: mockedAsyncApiService }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(ServersComponent as any); + component = fixture.debugElement.componentInstance; + }); + + it("should create the component", () => { + expect(component).toBeTruthy(); + }); +});