From 6b425dece8e2ab9d031e147c53e6b8b7c0c0d46b Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 24 Sep 2018 09:54:46 -0700 Subject: [PATCH] SHIBUI-812 Fixed tests --- .../attribute-release-form.component.spec.ts | 3 +- .../descriptor-info-form.component.spec.ts | 3 +- .../forms/finish-form.component.spec.ts | 3 +- .../forms/key-info-form.component.spec.ts | 3 +- .../forms/logout-form.component.spec.ts | 3 +- .../forms/metadata-ui-form.component.spec.ts | 3 +- .../organization-info-form.component.spec.ts | 3 +- .../relying-party-form.component.spec.ts | 3 +- .../domain/service/attributes.service.spec.ts | 0 .../service/list-values.service.spec.ts | 3 ++ ui/src/testing/attributes.stub.ts | 16 +++++++ ui/src/testing/list-values.stub.ts | 47 +++++++++++++++++++ 12 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 ui/src/app/metadata/domain/service/attributes.service.spec.ts create mode 100644 ui/src/testing/attributes.stub.ts create mode 100644 ui/src/testing/list-values.stub.ts 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 2c67eae1c..c05e6bad3 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 @@ -8,6 +8,7 @@ import { AttributeReleaseFormComponent } from './attribute-release-form.componen import { ListValuesService } from '../../../domain/service/list-values.service'; import * as stubs from '../../../../../testing/resolver.stub'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; describe('Attribute Release Form Component', () => { let fixture: ComponentFixture; @@ -19,7 +20,7 @@ describe('Attribute Release Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 7527f5e3c..d902432fd 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 @@ -11,6 +11,7 @@ import { DescriptorInfoFormComponent } from './descriptor-info-form.component'; import * as stubs from '../../../../../testing/resolver.stub'; import { SharedModule } from '../../../../shared/shared.module'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -48,7 +49,7 @@ describe('Descriptor Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 0d3ea08a4..882590b2b 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 @@ -14,6 +14,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -42,7 +43,7 @@ describe('Finished Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService, + { provide: ListValuesService, useClass: MockListValueService }, { provide: Router, useClass: RouterStub }, { provide: ActivatedRoute, useClass: ActivatedRouteStub } ], 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 fd6ccd5db..0b6751cc3 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 @@ -11,6 +11,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -43,7 +44,7 @@ describe('Security (Key) Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 83f1fafe4..89d8b9b09 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 @@ -12,6 +12,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -41,7 +42,7 @@ describe('Logout Endpoints Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 b74dc94db..3c86d3b13 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 @@ -11,6 +11,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ template: `` @@ -39,7 +40,7 @@ describe('Metadata UI Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 57708fbad..e5a4d30e4 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 @@ -7,6 +7,7 @@ import { ListValuesService } from '../../../domain/service/list-values.service'; import { OrganizationInfoFormComponent } from './organization-info-form.component'; import * as stubs from '../../../../../testing/resolver.stub'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; describe('Organization Info Form Component', () => { let fixture: ComponentFixture; @@ -18,7 +19,7 @@ describe('Organization Info Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, 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 0849591c6..274bbc3e0 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 @@ -10,6 +10,7 @@ import * as stubs from '../../../../../testing/resolver.stub'; import { SharedModule } from '../../../../shared/shared.module'; import { FileBackedHttpMetadataResolver } from '../../entity'; import { MockI18nModule } from '../../../../../testing/i18n.stub'; +import { MockListValueService } from '../../../../../testing/list-values.stub'; @Component({ @@ -48,7 +49,7 @@ describe('Relying Party Form Component', () => { ProviderValueEmitter, ProviderStatusEmitter, NgbPopoverConfig, - ListValuesService + { provide: ListValuesService, useClass: MockListValueService } ], imports: [ NoopAnimationsModule, diff --git a/ui/src/app/metadata/domain/service/attributes.service.spec.ts b/ui/src/app/metadata/domain/service/attributes.service.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ui/src/app/metadata/domain/service/list-values.service.spec.ts b/ui/src/app/metadata/domain/service/list-values.service.spec.ts index e90c51a76..2c26ba912 100644 --- a/ui/src/app/metadata/domain/service/list-values.service.spec.ts +++ b/ui/src/app/metadata/domain/service/list-values.service.spec.ts @@ -2,6 +2,8 @@ import { TestBed, async, inject } from '@angular/core/testing'; import { EntityValidators } from './entity-validators.service'; import { Observable, of } from 'rxjs'; import { ListValuesService } from './list-values.service'; +import { AttributesService } from './attributes.service'; +import { MockAttributeService } from '../../../../testing/attributes.stub'; describe(`ListValuesService`, () => { let service: ListValuesService; @@ -9,6 +11,7 @@ describe(`ListValuesService`, () => { TestBed.configureTestingModule({ imports: [], providers: [ + { provide: AttributesService, useClass: MockAttributeService }, ListValuesService ] }); diff --git a/ui/src/testing/attributes.stub.ts b/ui/src/testing/attributes.stub.ts new file mode 100644 index 000000000..200bf8ade --- /dev/null +++ b/ui/src/testing/attributes.stub.ts @@ -0,0 +1,16 @@ +import { Observable, of } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { ReleaseAttribute } from '../app/metadata/domain/model/properties/release-attribute'; + +@Injectable() +export class MockAttributeService { + + readonly path = '/customAttributes'; + readonly base = '/api'; + + constructor() { } + + query(path: string = this.path): Observable { + return of([]); + } +} diff --git a/ui/src/testing/list-values.stub.ts b/ui/src/testing/list-values.stub.ts new file mode 100644 index 000000000..3e9ecf152 --- /dev/null +++ b/ui/src/testing/list-values.stub.ts @@ -0,0 +1,47 @@ +import { Observable, of } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { ReleaseAttribute } from '../app/metadata/domain/model/properties/release-attribute'; +import { debounceTime, distinctUntilChanged, combineLatest } from 'rxjs/operators'; + +@Injectable() +export class MockListValueService { + + constructor() { } + + readonly nameIdFormats: Observable = of([ + 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified', + 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', + 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', + 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' + ]); + + readonly authenticationMethods: Observable = of([ + 'https://refeds.org/profile/mfa', + 'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken', + 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' + ]); + + get attributesToRelease(): Observable { + return of([]); + } + + searchStringList = (list: Observable): Function => + (text$: Observable) => + text$.pipe( + debounceTime(100), + distinctUntilChanged(), + combineLatest( + list, + (term, formats) => formats.filter( + v => v.toLowerCase().match(term.toLowerCase()) + ) + .slice(0, 4)) + ) + + get searchFormats(): Function { + return this.searchStringList(this.nameIdFormats); + } + get searchAuthenticationMethods(): Function { + return this.searchStringList(this.authenticationMethods); + } +}