From 8d61a4e6599910477c31d0b22bad6918a19b3b7b Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Tue, 7 Aug 2018 14:25:13 -0700 Subject: [PATCH] SHIBUI-716 Fixed issue with duplicate id validation for providers --- .../metadata/domain/effect/entity.effect.spec.ts | 13 +++++++++++-- .../container/provider-wizard-step.component.ts | 12 +++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ui/src/app/metadata/domain/effect/entity.effect.spec.ts b/ui/src/app/metadata/domain/effect/entity.effect.spec.ts index 710b55909..9039a4cd9 100644 --- a/ui/src/app/metadata/domain/effect/entity.effect.spec.ts +++ b/ui/src/app/metadata/domain/effect/entity.effect.spec.ts @@ -8,7 +8,7 @@ import { EntityIdService } from '../service/entity-id.service'; import { ResolverService } from '../service/resolver.service'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { NgbModalStub } from '../../../../testing/modal.stub'; -import { EntityAttributesFilterEntity } from '../entity'; +import { EntityAttributesFilterEntity, FileBackedHttpMetadataResolver } from '../entity'; describe('Entity Effects', () => { let effects: EntityEffects; @@ -45,7 +45,7 @@ describe('Entity Effects', () => { }); describe('openModal', () => { - it('should open a modal window', fakeAsync(() => { + it('should open a modal window for a filter', fakeAsync(() => { spyOn(modal, 'open').and.returnValue({componentInstance: {}}); spyOn(idService, 'preview').and.returnValue(of('')); effects.openModal(new EntityAttributesFilterEntity()); @@ -53,5 +53,14 @@ describe('Entity Effects', () => { tick(10); expect(modal.open).toHaveBeenCalled(); })); + + it('should open a modal window for a provider', fakeAsync(() => { + spyOn(modal, 'open').and.returnValue({ componentInstance: {} }); + spyOn(providerService, 'preview').and.returnValue(of('')); + effects.openModal(new FileBackedHttpMetadataResolver()); + expect(providerService.preview).toHaveBeenCalled(); + tick(10); + expect(modal.open).toHaveBeenCalled(); + })); }); }); 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 dce4187d7..0b9a7469e 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 @@ -46,9 +46,15 @@ export class ProviderWizardStepComponent implements OnDestroy { this.definition$ = this.store.select(fromWizard.getWizardDefinition); this.changes$ = this.store.select(fromProvider.getEntityChanges); - this.validators$ = this.store.select(fromProvider.getProviderNames).pipe( - withLatestFrom(this.definition$), - map(([names, def]) => def.getValidators(names)) + this.validators$ = this.definition$.pipe( + withLatestFrom( + this.store.select(fromProvider.getProviderNames), + this.store.select(fromProvider.getProviderXmlIds), + ), + map(([def, names, ids]) => def.getValidators( + names, + ids + )) ); this.model$ = this.schema$.pipe(