X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy%2Fpolicy-control.component.spec.ts;h=4109dbd9359efacc2380220bb944933555f14b0e;hb=90295c9a25c27628164eed0c66d0a89df587525b;hp=80c9d8c442feeae80d2c89246975998bf723817d;hpb=c43690c45b3f4d08d013ec488b83dea793cca646;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy/policy-control.component.spec.ts b/webapp-frontend/src/app/policy/policy-control.component.spec.ts index 80c9d8c..4109dbd 100644 --- a/webapp-frontend/src/app/policy/policy-control.component.spec.ts +++ b/webapp-frontend/src/app/policy/policy-control.component.spec.ts @@ -17,64 +17,71 @@ * limitations under the License. * ========================LICENSE_END=================================== */ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations' -import { MatDialog } from '@angular/material/dialog'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTableModule } from '@angular/material/table'; -import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { of } from 'rxjs'; +import { async, ComponentFixture, TestBed } from "@angular/core/testing"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { By } from "@angular/platform-browser"; +import { MatIconModule } from "@angular/material/icon"; +import { MatTableModule } from "@angular/material/table"; +import { CUSTOM_ELEMENTS_SCHEMA } from "@angular/core"; +import { of } from "rxjs"; -import { NotificationService } from '../services/ui/notification.service'; -import { PolicyControlComponent } from './policy-control.component'; -import { PolicyTypeDataSource } from './policy-type/policy-type.datasource'; -import { UiService } from '../services/ui/ui.service'; -import { PolicyTypeSchema } from '../interfaces/policy.types'; +import { PolicyControlComponent } from "./policy-control.component"; +import { PolicyTypes } from "@interfaces/policy.types"; +import { PolicyService } from "@services/policy/policy.service"; +import { MockComponent } from "ng-mocks"; +import { PolicyTypeComponent } from "./policy-type/policy-type.component"; +import { MatButtonHarness } from '@angular/material/button/testing'; +import { HarnessLoader } from '@angular/cdk/testing'; +import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; -describe('PolicyControlComponent', () => { +describe("PolicyControlComponent", () => { let component: PolicyControlComponent; let fixture: ComponentFixture; + let loader: HarnessLoader; beforeEach(async(() => { - const policyTypeDataSourceSpy = jasmine.createSpyObj('PolicyTypeDataSource', [ 'connect', 'getPolicyTypes', 'disconnect' ]); - var policyTypeSchema = {} as PolicyTypeSchema; - policyTypeSchema.name = ''; - policyTypeSchema.schemaObject = ''; - policyTypeDataSourceSpy.connect.and.returnValue(of([ policyTypeSchema])); - policyTypeDataSourceSpy.disconnect(); - - let matDialogStub: Partial; - let notificationServiceStub: Partial; + const policyServiceSpy = jasmine.createSpyObj("PolicyService", [ + "getPolicyTypes", + ]); + const policyTypes = { policytype_ids: ["type1", "type2"] } as PolicyTypes; + policyServiceSpy.getPolicyTypes.and.returnValue(of(policyTypes)); TestBed.configureTestingModule({ - imports: [ - MatIconModule, - MatTableModule, - BrowserAnimationsModule - ], - schemas: [ - CUSTOM_ELEMENTS_SCHEMA - ], + imports: [MatIconModule, MatTableModule, BrowserAnimationsModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [ - PolicyControlComponent - ], - providers: [ - { provide: PolicyTypeDataSource, useValue: policyTypeDataSourceSpy }, - { provide: MatDialog, useValue: matDialogStub }, - { provide: NotificationService, useValue: notificationServiceStub }, - UiService - ] - }) - .compileComponents(); + PolicyControlComponent, + MockComponent(PolicyTypeComponent), + ], + providers: [{ provide: PolicyService, useValue: policyServiceSpy }], + }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(PolicyControlComponent); component = fixture.componentInstance; fixture.detectChanges(); + loader = TestbedHarnessEnvironment.loader(fixture); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); + + it("should contain two PolicyType components instantiated with the correct type", () => { + const typeComponents: PolicyTypeComponent[] = fixture.debugElement + .queryAll(By.directive(PolicyTypeComponent)) + .map((component) => component.componentInstance); + + expect(typeComponents.length).toEqual(2); + expect(typeComponents[0].policyTypeId).toEqual("type1"); + expect(typeComponents[1].policyTypeId).toEqual("type2"); + }); + + /*it("should reload when clicking on refresh button", async () => { + let refreshButton: MatButtonHarness = await loader.getHarness( + MatButtonHarness.with({ selector: "#refreshButton" }) + ); + + })*/ });