diff --git a/ui/src/app/metadata/domain/service/provider.service.spec.ts b/ui/src/app/metadata/domain/service/provider.service.spec.ts index 814c413ac..356bf5964 100644 --- a/ui/src/app/metadata/domain/service/provider.service.spec.ts +++ b/ui/src/app/metadata/domain/service/provider.service.spec.ts @@ -2,7 +2,7 @@ import { TestBed, async, inject } from '@angular/core/testing'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { MetadataProviderService } from './provider.service'; -import { EntityAttributesFilter } from '../entity'; +import { MetadataProvider } from '../model'; describe(`Metadata Provider Service`, () => { @@ -47,8 +47,8 @@ describe(`Metadata Provider Service`, () => { it(`should send an expected PUT request`, async(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { const id = 'foo'; - const filter = new EntityAttributesFilter({id}); - service.update(filter).subscribe(); + const provider = { resourceId: id }; + service.update(provider).subscribe(); backend.expectOne((req: HttpRequest) => { return req.url === `${service.base}${service.endpoint}/${id}` @@ -61,8 +61,8 @@ describe(`Metadata Provider Service`, () => { it(`should send an expected POST request`, async(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { const id = 'foo'; - const filter = new EntityAttributesFilter({ id }); - service.save(filter).subscribe(); + const provider = { resourceId: id }; + service.save(provider).subscribe(); backend.expectOne((req: HttpRequest) => { return req.url === `${service.base}${service.endpoint}` diff --git a/ui/src/app/metadata/domain/service/provider.service.ts b/ui/src/app/metadata/domain/service/provider.service.ts index 29cc32f36..d82ee3d4b 100644 --- a/ui/src/app/metadata/domain/service/provider.service.ts +++ b/ui/src/app/metadata/domain/service/provider.service.ts @@ -24,7 +24,7 @@ export class MetadataProviderService { } update(provider: MetadataProvider): Observable { - return this.http.put(`${this.base}${this.endpoint}/${provider.id}`, provider); + return this.http.put(`${this.base}${this.endpoint}/${provider.resourceId}`, provider); } save(provider: MetadataProvider): Observable { diff --git a/ui/src/app/metadata/metadata.component.spec.ts b/ui/src/app/metadata/metadata.component.spec.ts index fb9d5f329..dffc99361 100644 --- a/ui/src/app/metadata/metadata.component.spec.ts +++ b/ui/src/app/metadata/metadata.component.spec.ts @@ -17,7 +17,7 @@ class TestHostComponent { public componentUnderTest: MetadataPageComponent; } -describe('AppComponent', () => { +describe('Metadata Root Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; @@ -48,8 +48,8 @@ describe('AppComponent', () => { fixture.detectChanges(); })); - it('should create the app', async(() => { + it('should load metadata objects', async(() => { expect(app).toBeTruthy(); - expect(store.dispatch).toHaveBeenCalledTimes(3); + expect(store.dispatch).toHaveBeenCalledTimes(4); })); }); diff --git a/ui/src/app/metadata/provider/action/collection.action.ts b/ui/src/app/metadata/provider/action/collection.action.ts index 934fafa46..99e71c758 100644 --- a/ui/src/app/metadata/provider/action/collection.action.ts +++ b/ui/src/app/metadata/provider/action/collection.action.ts @@ -3,11 +3,6 @@ import { MetadataProvider } from '../../domain/model/metadata-provider'; import { Update } from '@ngrx/entity'; export enum ProviderCollectionActionTypes { - FIND = '[Metadata Provider] Find', - SELECT_PROVIDER = '[Metadata Provider] Select Request', - SELECT_PROVIDER_SUCCESS = '[Metadata Provider] Select Success', - SELECT_PROVIDER_FAIL = '[Metadata Provider] Select Fail', - UPDATE_PROVIDER_REQUEST = '[Metadata Provider] Update Request', UPDATE_PROVIDER_SUCCESS = '[Metadata Provider] Update Success', UPDATE_PROVIDER_FAIL = '[Metadata Provider] Update Fail', diff --git a/ui/src/app/metadata/provider/container/provider-wizard-step.component.ts b/ui/src/app/metadata/provider/container/provider-wizard-step.component.ts index ed583d251..248542173 100644 --- a/ui/src/app/metadata/provider/container/provider-wizard-step.component.ts +++ b/ui/src/app/metadata/provider/container/provider-wizard-step.component.ts @@ -65,7 +65,7 @@ export class ProviderWizardStepComponent implements OnDestroy { }; constructor( - private store: Store + private store: Store, ) { this.schema$ = this.store.select(fromProvider.getSchema); this.definition$ = this.store.select(fromWizard.getWizardDefinition); @@ -86,7 +86,7 @@ export class ProviderWizardStepComponent implements OnDestroy { }, definition })), - map(({ model, definition }) => definition.translate ? definition.translate.formatter(model) : model) + map(({ model, definition }) => definition && definition.translate ? definition.translate.formatter(model) : model) ); this.valueChangeEmitted$.pipe( diff --git a/ui/src/app/metadata/provider/container/provider.component.spec.ts b/ui/src/app/metadata/provider/container/provider.component.spec.ts index e69de29bb..3f1363cdf 100644 --- a/ui/src/app/metadata/provider/container/provider.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider.component.spec.ts @@ -0,0 +1,57 @@ +import { Component, ViewChild } from '@angular/core'; +import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { StoreModule, Store, combineReducers } from '@ngrx/store'; + +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; + +import { ProviderComponent } from './provider.component'; +import * as fromRoot from '../reducer'; +import * as fromWizard from '../../../wizard/reducer'; + +@Component({ + template: ` + + ` +}) +class TestHostComponent { + @ViewChild(ProviderComponent) + public componentUnderTest: ProviderComponent; +} + +describe('Provider Component', () => { + + let fixture: ComponentFixture; + let instance: TestHostComponent; + let app: ProviderComponent; + let store: Store; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ + NgbDropdownModule.forRoot(), + RouterTestingModule, + StoreModule.forRoot({ + provider: combineReducers(fromRoot.reducers), + wizard: combineReducers(fromWizard.reducers) + }) + ], + declarations: [ + ProviderComponent, + TestHostComponent + ], + }).compileComponents(); + + store = TestBed.get(Store); + spyOn(store, 'dispatch'); + + fixture = TestBed.createComponent(TestHostComponent); + instance = fixture.componentInstance; + app = instance.componentUnderTest; + fixture.detectChanges(); + })); + + it('should instantiate the component', async(() => { + expect(app).toBeTruthy(); + })); +}); diff --git a/ui/src/app/wizard/reducer/index.ts b/ui/src/app/wizard/reducer/index.ts index bbf53caf4..77fbefbef 100644 --- a/ui/src/app/wizard/reducer/index.ts +++ b/ui/src/app/wizard/reducer/index.ts @@ -25,6 +25,7 @@ export const getWizardDefinition = createSelector(getState, fromWizard.getDefini export const getSchemaCollection = createSelector(getState, fromWizard.getCollection); export const getSchema = (index: string, wizard: Wizard) => { + if (!wizard) { return null; } const step = wizard.steps.find(s => s.id === index); return step ? step.schema : null; }; @@ -55,7 +56,7 @@ export const getLastFn = (index: string, wizard: Wizard) => { }; export const getModelFn = (currentStep: WizardStep) => { - const model = currentStep.initialValues || []; + const model = (currentStep && currentStep.initialValues) || []; return model.reduce((m, property) => m[property.key] = property.value, {}); };