From 12a49c84cb1adb84a42f6fa8464ace14b12c46b5 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 18 Jun 2018 09:21:17 -0700 Subject: [PATCH] Fixed reference issues in tests --- ui/src/app/app.reducer.ts | 3 +- .../advanced-info-form.component.spec.ts | 24 ++++----- .../forms/advanced-info-form.component.ts | 4 +- .../forms/assertion-form.component.spec.ts | 20 ++++---- .../attribute-release-form.component.spec.ts | 14 +++--- .../descriptor-info-form.component.spec.ts | 22 ++++----- .../forms/finish-form.component.spec.ts | 28 +++++------ .../forms/key-info-form.component.spec.ts | 20 ++++---- .../forms/logout-form.component.spec.ts | 24 ++++----- .../forms/metadata-ui-form.component.spec.ts | 18 +++---- .../organization-info-form.component.spec.ts | 18 +++---- .../relying-party-form.component.spec.ts | 22 ++++----- .../domain/effect/entity.effect.spec.ts | 6 +-- .../filter/action/filter.action.spec.ts | 6 +-- .../component/search-dialog.component.spec.ts | 8 +-- .../container/new-filter.component.spec.ts | 8 +-- .../filter/effect/collection.effect.spec.ts | 6 +-- .../filter/reducer/filter.reducer.spec.ts | 2 +- .../component/entity-item.component.scss | 2 +- .../component/entity-item.component.spec.ts | 6 +-- .../container/manager.component.spec.ts | 10 ++-- ui/src/app/metadata/metadata.module.ts | 3 ++ ui/src/app/metadata/metadata.reducer.ts | 10 +++- .../component/wizard-nav.component.spec.ts | 2 +- ui/src/app/notification/reducer/index.ts | 1 - ui/src/testing/provider.stub.ts | 3 +- ui/src/testing/resolver.stub.ts | 49 +++++++++++++++++++ 27 files changed, 197 insertions(+), 142 deletions(-) create mode 100644 ui/src/testing/resolver.stub.ts diff --git a/ui/src/app/app.reducer.ts b/ui/src/app/app.reducer.ts index bd5aa2946..5808ccf22 100644 --- a/ui/src/app/app.reducer.ts +++ b/ui/src/app/app.reducer.ts @@ -1,5 +1,4 @@ -import { ActionReducerMap, MetaReducer, ActionReducer } from '@ngrx/store'; -import { routerReducer, RouterReducerState } from '@ngrx/router-store'; +import { ActionReducerMap, MetaReducer } from '@ngrx/store'; import * as fromRouter from '@ngrx/router-store'; import { RouterStateUrl } from './shared/util'; diff --git a/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.spec.ts index e51cc7972..34dee5c1d 100644 --- a/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.spec.ts @@ -3,15 +3,15 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { AdvancedInfoFormComponent } from './advanced-info-form.component'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; -import * as stubs from '../../../../testing/provider.stub'; +import * as stubs from '../../../../../testing/resolver.stub'; describe('Advanced Info Form Component', () => { let fixture: ComponentFixture; let instance: AdvancedInfoFormComponent; - let store: Store; + let store: Store; beforeEach(() => { TestBed.configureTestingModule({ @@ -24,7 +24,7 @@ describe('Advanced Info Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -45,19 +45,19 @@ describe('Advanced Info Form Component', () => { }); describe('ngOnChanges method', () => { - it('should set properties on the provider', () => { - instance.provider = stubs.provider; + it('should set properties on the resolver', () => { + instance.resolver = stubs.resolver; fixture.detectChanges(); instance.ngOnChanges(); - expect(instance.provider.organization).toEqual({}); - expect(instance.provider.contacts).toEqual([]); + expect(instance.resolver.organization).toEqual({}); + expect(instance.resolver.contacts).toEqual([]); }); }); describe('removeContact method', () => { it('should remove the contact at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, contacts: [stubs.contact] }; fixture.detectChanges(); @@ -69,8 +69,8 @@ describe('Advanced Info Form Component', () => { describe('addContact method', () => { it('should remove the contact at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, contacts: [stubs.contact] }; fixture.detectChanges(); diff --git a/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.ts b/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.ts index 5b756ef42..39b143a24 100644 --- a/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.ts +++ b/ui/src/app/metadata/domain/component/forms/advanced-info-form.component.ts @@ -1,7 +1,7 @@ import { Component, Input, OnInit, OnChanges, OnDestroy, ChangeDetectionStrategy, EventEmitter } from '@angular/core'; -import { FormBuilder, FormGroup, FormControl, FormArray, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms'; import { Observable, Subscription, of } from 'rxjs'; -import { takeUntil, combineLatest, switchMap, map, startWith } from 'rxjs/operators'; +import { takeUntil, switchMap, map, startWith } from 'rxjs/operators'; import { Store } from '@ngrx/store'; diff --git a/ui/src/app/metadata/domain/component/forms/assertion-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/assertion-form.component.spec.ts index 5f6574a8c..af3f07983 100644 --- a/ui/src/app/metadata/domain/component/forms/assertion-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/assertion-form.component.spec.ts @@ -3,15 +3,15 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { AssertionFormComponent } from './assertion-form.component'; -import * as stubs from '../../../../testing/provider.stub'; +import * as stubs from '../../../../../testing/resolver.stub'; describe('Assertion Form Component', () => { let fixture: ComponentFixture; let instance: AssertionFormComponent; - let store: Store; + let store: Store; beforeEach(() => { TestBed.configureTestingModule({ @@ -24,7 +24,7 @@ describe('Assertion Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -46,17 +46,17 @@ describe('Assertion Form Component', () => { describe('ngOnChanges method', () => { it('should set properties on the provider', () => { - instance.provider = stubs.provider; + instance.resolver = stubs.resolver; fixture.detectChanges(); instance.ngOnChanges(); - expect(instance.provider.assertionConsumerServices).toEqual([]); + expect(instance.resolver.assertionConsumerServices).toEqual([]); }); }); describe('removeEndpoint method', () => { it('should remove the endpoint at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, assertionConsumerServices: [stubs.endpoint] }; fixture.detectChanges(); @@ -68,8 +68,8 @@ describe('Assertion Form Component', () => { describe('addEndpoint method', () => { it('should remove the endpoint at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, assertionConsumerServices: [stubs.endpoint] }; fixture.detectChanges(); diff --git a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts index 1345dda16..43cf58244 100644 --- a/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/attribute-release-form.component.spec.ts @@ -3,16 +3,16 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { AttributeReleaseFormComponent } from './attribute-release-form.component'; import { ListValuesService } from '../../../domain/service/list-values.service'; -import * as stubs from '../../../../testing/provider.stub'; +import * as stubs from '../../../../../testing/resolver.stub'; describe('Attribute Release Form Component', () => { let fixture: ComponentFixture; let instance: AttributeReleaseFormComponent; - let store: Store; + let store: Store; beforeEach(() => { TestBed.configureTestingModule({ @@ -26,7 +26,7 @@ describe('Attribute Release Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -39,8 +39,8 @@ describe('Attribute Release Form Component', () => { fixture = TestBed.createComponent(AttributeReleaseFormComponent); instance = fixture.componentInstance; - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, attributeRelease: [] }; fixture.detectChanges(); @@ -54,7 +54,7 @@ describe('Attribute Release Form Component', () => { it('should set properties on the provider', () => { spyOn(instance, 'setAttributes'); instance.ngOnChanges(); - expect(instance.provider.attributeRelease).toEqual([]); + expect(instance.resolver.attributeRelease).toEqual([]); expect(instance.setAttributes).toHaveBeenCalled(); }); }); diff --git a/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts index 98baad840..a9c8b8d8b 100644 --- a/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/descriptor-info-form.component.spec.ts @@ -4,21 +4,21 @@ import { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; -import { Resolver } from '../../../domain/entity/provider'; +import { FileBackedHttpMetadataResolver } from '../../../domain/entity'; import { DescriptorInfoFormComponent } from './descriptor-info-form.component'; -import * as stubs from '../../../../testing/provider.stub'; -import { SharedModule } from '../../../shared/shared.module'; +import * as stubs from '../../../../../testing/resolver.stub'; +import { SharedModule } from '../../../../shared/shared.module'; @Component({ - template: `` + template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider, + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver, serviceProviderSsoDescriptor: { protocolSupportEnum: 'foo', nameIdFormats: [] @@ -29,18 +29,18 @@ class TestHostComponent { public formUnderTest: DescriptorInfoFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } addFormat(value: string): void { - this.provider.serviceProviderSsoDescriptor.nameIdFormats.push(value); + this.resolver.serviceProviderSsoDescriptor.nameIdFormats.push(value); } } describe('Descriptor Info Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: DescriptorInfoFormComponent; let fb: FormBuilder; @@ -56,7 +56,7 @@ describe('Descriptor Info Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule, SharedModule diff --git a/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts index ffd903c16..7be173c01 100644 --- a/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/finish-form.component.spec.ts @@ -5,38 +5,38 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { ActivatedRoute, Router } from '@angular/router'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; import { FinishFormComponent } from './finish-form.component'; -import { RouterStub, RouterLinkStubDirective } from '../../../../testing/router.stub'; -import { ActivatedRouteStub } from '../../../../testing/activated-route.stub'; +import { RouterStub, RouterLinkStubDirective } from '../../../../../testing/router.stub'; +import { ActivatedRouteStub } from '../../../../../testing/activated-route.stub'; -import * as stubs from '../../../../testing/provider.stub'; -import { InputDefaultsDirective } from '../../directive/input-defaults.directive'; +import * as stubs from '../../../../../testing/resolver.stub'; import { I18nTextComponent } from '../../../domain/component/i18n-text.component'; -import { Resolver } from '../../../domain/entity/provider'; +import { FileBackedHttpMetadataResolver } from '../../entity'; +import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; @Component({ - template: `` + template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver }); @ViewChild(FinishFormComponent) public formUnderTest: FinishFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } } describe('Finished Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: FinishFormComponent; beforeEach(() => { @@ -53,7 +53,7 @@ describe('Finished Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -88,9 +88,9 @@ describe('Finished Form Component', () => { expect(form.form.reset).toHaveBeenCalled(); }); - xit('should reset the form with serviceEnabled = false if no provider', () => { + xit('should reset the form with serviceEnabled = false if no resolver', () => { spyOn(form.form, 'reset').and.callThrough(); - delete instance.provider; + delete instance.resolver; fixture.detectChanges(); expect(form.form.reset).toHaveBeenCalled(); }); diff --git a/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts index b05300916..3a9e08ffa 100644 --- a/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/key-info-form.component.spec.ts @@ -4,22 +4,22 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; import { KeyInfoFormComponent } from './key-info-form.component'; -import { InputDefaultsDirective } from '../../directive/input-defaults.directive'; -import * as stubs from '../../../../testing/provider.stub'; +import * as stubs from '../../../../../testing/resolver.stub'; import { I18nTextComponent } from '../../../domain/component/i18n-text.component'; -import { Resolver } from '../../../domain/entity/provider'; +import { FileBackedHttpMetadataResolver } from '../../entity'; +import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; @Component({ - template: `` + template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider, + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver, securityInfo: { ...stubs.secInfo, x509Certificates: [] @@ -30,14 +30,14 @@ class TestHostComponent { public formUnderTest: KeyInfoFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } } describe('Security (Key) Info Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: KeyInfoFormComponent; beforeEach(() => { @@ -52,7 +52,7 @@ describe('Security (Key) Info Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], diff --git a/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts index 42d627f75..6ab388e98 100644 --- a/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/logout-form.component.spec.ts @@ -4,22 +4,22 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; import { LogoutFormComponent } from './logout-form.component'; -import * as stubs from '../../../../testing/provider.stub'; -import { InputDefaultsDirective } from '../../directive/input-defaults.directive'; +import * as stubs from '../../../../../testing/resolver.stub'; import { I18nTextComponent } from '../../../domain/component/i18n-text.component'; -import { Resolver } from '../../../domain/entity/provider'; +import { FileBackedHttpMetadataResolver } from '../../entity'; +import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; @Component({ - template: `` + template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider, + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver, logoutEndpoints: [stubs.logoutEndpoint] }); @@ -27,14 +27,14 @@ class TestHostComponent { public formUnderTest: LogoutFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } } describe('Logout Endpoints Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: LogoutFormComponent; beforeEach(() => { @@ -49,7 +49,7 @@ describe('Logout Endpoints Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -85,8 +85,8 @@ describe('Logout Endpoints Form Component', () => { describe('ngOnChanges method', () => { it('should add endpoints if provided', () => { - instance.provider = new Resolver({ - ...stubs.provider + instance.resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver }); fixture.detectChanges(); expect(form.logoutEndpoints.length).toBe(0); diff --git a/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts index 9057d5ada..31b16f56e 100644 --- a/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/metadata-ui-form.component.spec.ts @@ -4,36 +4,36 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; -import { Resolver } from '../../../domain/entity/provider'; import { MetadataUiFormComponent } from './metadata-ui-form.component'; -import * as stubs from '../../../../testing/provider.stub'; -import { InputDefaultsDirective } from '../../directive/input-defaults.directive'; +import * as stubs from '../../../../../testing/resolver.stub'; import { I18nTextComponent } from '../../../domain/component/i18n-text.component'; +import { FileBackedHttpMetadataResolver } from '../../entity'; +import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; @Component({ template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver }); @ViewChild(MetadataUiFormComponent) public formUnderTest: MetadataUiFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } } describe('Metadata UI Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: MetadataUiFormComponent; beforeEach(() => { @@ -48,7 +48,7 @@ describe('Metadata UI Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], diff --git a/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts index 93ca34dd9..1a4591a57 100644 --- a/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/organization-info-form.component.spec.ts @@ -3,16 +3,16 @@ import { ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; import { OrganizationInfoFormComponent } from './organization-info-form.component'; -import * as stubs from '../../../../testing/provider.stub'; +import * as stubs from '../../../../../testing/resolver.stub'; +import * as fromMetadata from '../../../metadata.reducer'; describe('Organization Info Form Component', () => { let fixture: ComponentFixture; let instance: OrganizationInfoFormComponent; - let store: Store; + let store: Store; beforeEach(() => { TestBed.configureTestingModule({ @@ -26,7 +26,7 @@ describe('Organization Info Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule ], @@ -48,7 +48,7 @@ describe('Organization Info Form Component', () => { describe('ngOnChanges method', () => { it('should set properties on the provider', () => { - instance.provider = stubs.provider; + instance.resolver = stubs.resolver; fixture.detectChanges(); instance.ngOnChanges(); expect(instance.provider.organization).toEqual({}); @@ -58,8 +58,8 @@ describe('Organization Info Form Component', () => { describe('removeContact method', () => { it('should remove the contact at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, contacts: [stubs.contact] }; fixture.detectChanges(); @@ -71,8 +71,8 @@ describe('Organization Info Form Component', () => { describe('addContact method', () => { it('should remove the contact at the given index', () => { - instance.provider = { - ...stubs.provider, + instance.resolver = { + ...stubs.resolver, contacts: [stubs.contact] }; fixture.detectChanges(); diff --git a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts index 828e47314..66843943e 100644 --- a/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts +++ b/ui/src/app/metadata/domain/component/forms/relying-party-form.component.spec.ts @@ -4,21 +4,21 @@ import { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { ProviderValueEmitter, ProviderStatusEmitter } from '../../../domain/service/provider-change-emitter.service'; -import * as fromCollections from '../../../domain/reducer'; +import * as fromMetadata from '../../../metadata.reducer'; import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap/popover/popover.module'; import { ListValuesService } from '../../../domain/service/list-values.service'; import { RelyingPartyFormComponent } from './relying-party-form.component'; -import { Resolver } from '../../../domain/entity/provider'; -import * as stubs from '../../../../testing/provider.stub'; -import { SharedModule } from '../../../shared/shared.module'; +import * as stubs from '../../../../../testing/resolver.stub'; +import { SharedModule } from '../../../../shared/shared.module'; +import { FileBackedHttpMetadataResolver } from '../../entity'; @Component({ - template: `` + template: `` }) class TestHostComponent { - provider = new Resolver({ - ...stubs.provider, + resolver = new FileBackedHttpMetadataResolver({ + ...stubs.resolver, relyingPartyOverrides: { nameIdFormats: [], authenticationMethods: [] @@ -29,18 +29,18 @@ class TestHostComponent { public formUnderTest: RelyingPartyFormComponent; changeProvider(opts: any): void { - this.provider = Object.assign({}, this.provider, opts); + this.resolver = Object.assign({}, this.resolver, opts); } addString(collection: 'nameIdFormats' | 'authenticationMethods', value: string): void { - this.provider.relyingPartyOverrides[collection].push(value); + this.resolver.relyingPartyOverrides[collection].push(value); } } describe('Relying Party Form Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - let store: Store; + let store: Store; let form: RelyingPartyFormComponent; let fb: FormBuilder; @@ -56,7 +56,7 @@ describe('Relying Party Form Component', () => { NoopAnimationsModule, ReactiveFormsModule, StoreModule.forRoot({ - 'collections': combineReducers(fromCollections.reducers), + 'metadata': combineReducers(fromMetadata.reducers), }), NgbPopoverModule, SharedModule 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 141abe812..d42817b6e 100644 --- a/ui/src/app/metadata/domain/effect/entity.effect.spec.ts +++ b/ui/src/app/metadata/domain/effect/entity.effect.spec.ts @@ -5,7 +5,7 @@ import { of } from 'rxjs'; import { TestActions, getActions } from '../../../../testing/effect.util'; import { EntityEffects } from './entity.effect'; import { EntityIdService } from '../service/entity-id.service'; -import { EntityDescriptorService } from '../service/entity-descriptor.service'; +import { ResolverService } from '../service/resolver.service'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { NgbModalStub } from '../../../../testing/modal.stub'; import { EntityAttributesFilter } from '../entity'; @@ -26,7 +26,7 @@ describe('Entity Effects', () => { useClass: NgbModalStub }, { - provide: EntityDescriptorService, + provide: ResolverService, useValue: { preview: () => {} }, }, { @@ -38,7 +38,7 @@ describe('Entity Effects', () => { }); effects = TestBed.get(EntityEffects); - providerService = TestBed.get(EntityDescriptorService); + providerService = TestBed.get(ResolverService); idService = TestBed.get(EntityIdService); modal = TestBed.get(NgbModal); actions$ = TestBed.get(Actions); diff --git a/ui/src/app/metadata/filter/action/filter.action.spec.ts b/ui/src/app/metadata/filter/action/filter.action.spec.ts index 290f349cd..db844107e 100644 --- a/ui/src/app/metadata/filter/action/filter.action.spec.ts +++ b/ui/src/app/metadata/filter/action/filter.action.spec.ts @@ -1,8 +1,8 @@ -import * as actions from './filter.action'; +import { FilterActionTypes, CancelCreateFilter, SelectId } from './filter.action'; describe('Filter Actions', () => { it('should provide actions', () => { - expect(new actions.CancelCreateFilter().type).toBe(actions.CANCEL_CREATE_FILTER); - expect(new actions.SelectId('foo').type).toBe(actions.SELECT_ID); + expect(new CancelCreateFilter().type).toBe(FilterActionTypes.CANCEL_CREATE_FILTER); + expect(new SelectId('foo').type).toBe(FilterActionTypes.SELECT_ID); }); }); diff --git a/ui/src/app/metadata/filter/component/search-dialog.component.spec.ts b/ui/src/app/metadata/filter/component/search-dialog.component.spec.ts index aa86d0289..8992df655 100644 --- a/ui/src/app/metadata/filter/component/search-dialog.component.spec.ts +++ b/ui/src/app/metadata/filter/component/search-dialog.component.spec.ts @@ -1,11 +1,11 @@ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { ReactiveFormsModule, FormBuilder } from '@angular/forms'; -import { NgbModalModule, NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { ReactiveFormsModule } from '@angular/forms'; +import { NgbModalModule, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { SearchDialogComponent } from './search-dialog.component'; -import { NgbActiveModalStub } from '../../../testing/modal.stub'; +import { NgbActiveModalStub } from '../../../../testing/modal.stub'; import * as fromFilter from '../reducer'; -import { SharedModule } from '../../shared/shared.module'; +import { SharedModule } from '../../../shared/shared.module'; describe('Search Dialog', () => { let fixture: ComponentFixture; diff --git a/ui/src/app/metadata/filter/container/new-filter.component.spec.ts b/ui/src/app/metadata/filter/container/new-filter.component.spec.ts index 5872424fc..dfd998016 100644 --- a/ui/src/app/metadata/filter/container/new-filter.component.spec.ts +++ b/ui/src/app/metadata/filter/container/new-filter.component.spec.ts @@ -3,11 +3,11 @@ import { ReactiveFormsModule, FormBuilder } from '@angular/forms'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NewFilterComponent } from './new-filter.component'; import * as fromFilter from '../reducer'; -import { ProviderEditorFormModule } from '../../metadata-provider/component'; +import { ProviderEditorFormModule } from '../../domain/component'; import { ProviderStatusEmitter, ProviderValueEmitter } from '../../domain/service/provider-change-emitter.service'; -import { NgbPopoverModule, NgbPopoverConfig, NgbModalModule, NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { NavigatorService } from '../../core/service/navigator.service'; -import { SharedModule } from '../../shared/shared.module'; +import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap'; +import { NavigatorService } from '../../../core/service/navigator.service'; +import { SharedModule } from '../../../shared/shared.module'; describe('New Metadata Filter Page', () => { let fixture: ComponentFixture; diff --git a/ui/src/app/metadata/filter/effect/collection.effect.spec.ts b/ui/src/app/metadata/filter/effect/collection.effect.spec.ts index 8dfc5cb5d..d89c931ad 100644 --- a/ui/src/app/metadata/filter/effect/collection.effect.spec.ts +++ b/ui/src/app/metadata/filter/effect/collection.effect.spec.ts @@ -4,7 +4,7 @@ import { Actions } from '@ngrx/effects'; import { TestActions, getActions } from '../../../../testing/effect.util'; import { MetadataFilter } from '../../domain/model'; import { FilterCollectionEffects } from './collection.effect'; -import { MetadataResolverService } from '../../domain/service/metadata-resolver.service'; +import { MetadataProviderService } from '../../domain/service/provider.service'; import { Router } from '@angular/router'; import { RouterStub } from '../../../../testing/router.stub'; @@ -18,7 +18,7 @@ describe('Filter Collection Effects', () => { providers: [ FilterCollectionEffects, { - provide: MetadataResolverService, + provide: MetadataProviderService, useValue: { query: () => { }, find: (id: string) => { }, @@ -32,7 +32,7 @@ describe('Filter Collection Effects', () => { }); effects = TestBed.get(FilterCollectionEffects); - draftService = TestBed.get(MetadataResolverService); + draftService = TestBed.get(MetadataProviderService); actions$ = TestBed.get(Actions); }); }); diff --git a/ui/src/app/metadata/filter/reducer/filter.reducer.spec.ts b/ui/src/app/metadata/filter/reducer/filter.reducer.spec.ts index 33f3c4baf..f4f4cbe82 100644 --- a/ui/src/app/metadata/filter/reducer/filter.reducer.spec.ts +++ b/ui/src/app/metadata/filter/reducer/filter.reducer.spec.ts @@ -15,7 +15,7 @@ import { UpdateFilterSuccess } from '../action/collection.action'; import { MDUI } from '../../domain/model'; -import { MetadataFilter } from '../../domain/domain.type'; +import { MetadataFilter } from '../../domain/model'; import { EntityAttributesFilter } from '../../domain/entity/filter/entity-attributes-filter'; diff --git a/ui/src/app/metadata/manager/component/entity-item.component.scss b/ui/src/app/metadata/manager/component/entity-item.component.scss index 71b76bfe5..eb762129a 100644 --- a/ui/src/app/metadata/manager/component/entity-item.component.scss +++ b/ui/src/app/metadata/manager/component/entity-item.component.scss @@ -1,4 +1,4 @@ -@import '../../../theme/palette'; +@import '../../../../theme/palette'; .card { background-color: rgba($light-grey, 0.5); diff --git a/ui/src/app/metadata/manager/component/entity-item.component.spec.ts b/ui/src/app/metadata/manager/component/entity-item.component.spec.ts index 66c43dd65..b71ce9f57 100644 --- a/ui/src/app/metadata/manager/component/entity-item.component.spec.ts +++ b/ui/src/app/metadata/manager/component/entity-item.component.spec.ts @@ -1,13 +1,13 @@ import { TestBed, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { EntityItemComponent } from './entity-item.component'; -import { MetadataProvider } from '../../domain/model/metadata-provider'; +import { FileBackedHttpMetadataResolver } from '../../domain/entity'; describe('Resolver List item', () => { let fixture: ComponentFixture; let instance: EntityItemComponent; - let provider = { entityId: 'foo', serviceProviderName: 'bar' } as MetadataProvider; + let resolver = new FileBackedHttpMetadataResolver({ entityId: 'foo', serviceProviderName: 'bar' }); beforeEach(() => { TestBed.configureTestingModule({ @@ -20,7 +20,7 @@ describe('Resolver List item', () => { fixture = TestBed.createComponent(EntityItemComponent); instance = fixture.componentInstance; - instance.entity = provider; + instance.entity = resolver; }); it('should compile', () => { diff --git a/ui/src/app/metadata/manager/container/manager.component.spec.ts b/ui/src/app/metadata/manager/container/manager.component.spec.ts index 4d1bc9020..8c6bca4ed 100644 --- a/ui/src/app/metadata/manager/container/manager.component.spec.ts +++ b/ui/src/app/metadata/manager/container/manager.component.spec.ts @@ -5,7 +5,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap/pagination/pagination.module'; import { NgbModal, NgbModalModule } from '@ng-bootstrap/ng-bootstrap/modal/modal.module'; -import { DashboardComponent } from './manager.component'; +import { ManagerComponent } from './manager.component'; import * as fromDashboard from '../reducer'; import { ProviderSearchComponent } from '../component/provider-search.component'; import { EntityItemComponent } from '../component/entity-item.component'; @@ -16,11 +16,11 @@ import { FileBackedHttpMetadataResolver } from '../../domain/entity'; describe('Metadata Manager Page', () => { - let fixture: ComponentFixture; + let fixture: ComponentFixture; let store: Store; let router: Router; let modal: NgbModal; - let instance: DashboardComponent; + let instance: ManagerComponent; let draft = new FileBackedHttpMetadataResolver({ entityId: 'foo', @@ -48,14 +48,14 @@ describe('Metadata Manager Page', () => { NgbModalModule ], declarations: [ - DashboardComponent, + ManagerComponent, ProviderSearchComponent, EntityItemComponent, DeleteDialogComponent ], }); - fixture = TestBed.createComponent(DashboardComponent); + fixture = TestBed.createComponent(ManagerComponent); instance = fixture.componentInstance; store = TestBed.get(Store); router = TestBed.get(Router); diff --git a/ui/src/app/metadata/metadata.module.ts b/ui/src/app/metadata/metadata.module.ts index 58c75051e..7ad1a2487 100644 --- a/ui/src/app/metadata/metadata.module.ts +++ b/ui/src/app/metadata/metadata.module.ts @@ -5,12 +5,15 @@ import { ResolverModule } from './resolver/resolver.module'; import { FilterModule } from './filter/filter.module'; import { DomainModule } from './domain/domain.module'; import { MetadataPageComponent } from './metadata.component'; +import { StoreModule } from '@ngrx/store'; +import { reducers } from './metadata.reducer'; @NgModule({ imports: [ ResolverModule, FilterModule, DomainModule, + StoreModule.forFeature('metadata', reducers), RouterModule.forChild([ { path: '', component: MetadataPageComponent } ]) diff --git a/ui/src/app/metadata/metadata.reducer.ts b/ui/src/app/metadata/metadata.reducer.ts index f035ff707..ab9908cfd 100644 --- a/ui/src/app/metadata/metadata.reducer.ts +++ b/ui/src/app/metadata/metadata.reducer.ts @@ -4,6 +4,7 @@ import { ResolverState } from './resolver/reducer'; import { reducers as filterReducers } from './filter/reducer'; import { reducers as resolverReducers } from './filter/reducer'; +import { combineReducers } from '@ngrx/store'; export interface MetadataState { filter: FilterState; @@ -16,6 +17,11 @@ export interface State extends fromRoot.State { } export const reducers = { - filter: filterReducers, - resolver: resolverReducers + filter: combineReducers(filterReducers), + resolver: combineReducers(resolverReducers) +}; + + +export const reducer = { + metadata: reducers }; diff --git a/ui/src/app/metadata/resolver/component/wizard-nav.component.spec.ts b/ui/src/app/metadata/resolver/component/wizard-nav.component.spec.ts index ec5369a06..86084e2b2 100644 --- a/ui/src/app/metadata/resolver/component/wizard-nav.component.spec.ts +++ b/ui/src/app/metadata/resolver/component/wizard-nav.component.spec.ts @@ -5,7 +5,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { WizardNavComponent } from './wizard-nav.component'; import * as fromEditor from '../reducer'; -import { ProviderEditorFormModule } from '../../metadata-provider/component/index'; +import { ProviderEditorFormModule } from '../../domain/component'; import { DomainModule } from '../../domain/domain.module'; @Component({ diff --git a/ui/src/app/notification/reducer/index.ts b/ui/src/app/notification/reducer/index.ts index 4298e3315..f8458bb12 100644 --- a/ui/src/app/notification/reducer/index.ts +++ b/ui/src/app/notification/reducer/index.ts @@ -1,7 +1,6 @@ import { createSelector, createFeatureSelector } from '@ngrx/store'; import * as fromNotifications from './notification.reducer'; import * as fromRoot from '../../core/reducer'; -import { Notification } from '../model/notification'; export interface State extends fromRoot.State { notifications: NotificationState; diff --git a/ui/src/testing/provider.stub.ts b/ui/src/testing/provider.stub.ts index 724efd971..344ba5ef0 100644 --- a/ui/src/testing/provider.stub.ts +++ b/ui/src/testing/provider.stub.ts @@ -5,10 +5,9 @@ import { Certificate, SecurityInfo, LogoutEndpoint -} from '../app/domain/model/metadata-provider'; +} from '../app/metadata/domain/model'; export const draft = { - entityId: 'foo', serviceProviderName: 'bar' } as MetadataProvider; diff --git a/ui/src/testing/resolver.stub.ts b/ui/src/testing/resolver.stub.ts new file mode 100644 index 000000000..7520e2606 --- /dev/null +++ b/ui/src/testing/resolver.stub.ts @@ -0,0 +1,49 @@ +import { + MetadataProvider, + Contact, + SsoService, + Certificate, + SecurityInfo, + LogoutEndpoint, + MetadataResolver +} from '../app/metadata/domain/model'; + +export const draft = { + entityId: 'foo', + serviceProviderName: 'bar' +} as MetadataResolver; + +export const resolver = { + ...draft, + id: '1' +} as MetadataResolver; + +export const contact = { + type: 'support', + name: 'hithere yo', + emailAddress: 'somewhere@something.com' +} as Contact; + +export const endpoint = { + binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + locationUrl: 'http://unicon.net/location', + makeDefault: false +} as SsoService; + +export const certificate = { + name: 'foo', + type: 'signing', + value: 'xyz' +} as Certificate; + +export const secInfo = { + x509CertificateAvailable: false, + authenticationRequestsSigned: true, + wantAssertionsSigned: true, + x509Certificates: [] +} as SecurityInfo; + +export const logoutEndpoint = { + url: 'foo', + bindingType: 'bar' +} as LogoutEndpoint;