Skip to content

Commit

Permalink
SHIBUI-598 Fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Jun 18, 2018
1 parent 12a49c8 commit 527e747
Show file tree
Hide file tree
Showing 31 changed files with 166 additions and 132 deletions.
2 changes: 1 addition & 1 deletion ui/src/app/app.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ describe('AppComponent', () => {

it('should create the app', async(() => {
expect(app).toBeTruthy();
expect(store.dispatch).toHaveBeenCalledTimes(4);
expect(store.dispatch).toHaveBeenCalledTimes(1);
}));

it(`should have as title 'Shib-UI'`, async(() => {
Expand Down
106 changes: 53 additions & 53 deletions ui/src/app/metadata/domain/component/forms/finish-form.component.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { FileBackedHttpMetadataResolver } from '../../entity';
import { InputDefaultsDirective } from '../../../../shared/directive/input-defaults.directive';

@Component({
template: `<metadata-ui-form [provider]="provider"></metadata-ui-form>`
template: `<metadata-ui-form [resolver]="resolver"></metadata-ui-form>`
})
class TestHostComponent {
resolver = new FileBackedHttpMetadataResolver({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ describe('Organization Info Form Component', () => {
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([]);
});
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { EntityValidators } from '../../../domain/service/entity-validators.serv
templateUrl: './organization-info-form.component.html'
})
export class OrganizationInfoFormComponent extends ProviderFormFragmentComponent implements OnInit, OnChanges, OnDestroy {
@Input() provider: MetadataResolver;
@Input() resolver: MetadataResolver;

contactTypes: string[] = [
'support',
Expand Down Expand Up @@ -59,12 +59,12 @@ export class OrganizationInfoFormComponent extends ProviderFormFragmentComponent
}

ngOnChanges(): void {
this.provider.organization = this.provider.organization || {};
this.provider.contacts = this.provider.contacts || [];
this.resolver.organization = this.resolver.organization || {};
this.resolver.contacts = this.resolver.contacts || [];
this.form.reset({
organization: this.provider.organization
organization: this.resolver.organization
});
this.setContacts(this.provider.contacts);
this.setContacts(this.resolver.contacts);
}

get contacts(): FormArray {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ export class EntityAttributesFilter implements MetadataFilter, MetadataEntity {
return this.entityId;
}

isDraft(): boolean {
return false;
}

get id(): string {
return this.resourceId;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ export class FileBackedHttpMetadataProvider implements MetadataProvider, Metadat
return this.id;
}

isDraft(): boolean {
return false;
}

get name(): string {
return this.serviceProviderName;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ export class FileBackedHttpMetadataResolver implements MetadataResolver, Metadat
}

getId(): string {
return this.id;
return this.id ? this.id : this.entityId;
}

isDraft(): boolean {
return this.id ? false : true;
}

get name(): string {
Expand Down
1 change: 1 addition & 0 deletions ui/src/app/metadata/domain/model/metadata-entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export interface MetadataEntity {
kind: string;

getId(): string;
isDraft(): boolean;

serialize(): any;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { HttpClientModule, HttpRequest } from '@angular/common/http';
import { MetadataProviderService } from './provider.service';
import { EntityAttributesFilter } from '../entity';

describe(`Metadata Resolver Service`, () => {
xdescribe(`Metadata Provider Service`, () => {

beforeEach(() => {
TestBed.configureTestingModule({
Expand Down
2 changes: 1 addition & 1 deletion ui/src/app/metadata/domain/service/provider.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

import { MetadataFilter } from '../../domain/model/metadata-filter';
import { MetadataFilter } from '../../domain/model';

@Injectable()
export class MetadataProviderService {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/
import { ResolverService } from './resolver.service';


describe(`EntityDescriptorService`, () => {
describe(`Resolver Service`, () => {

beforeEach(() => {
TestBed.configureTestingModule({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,10 @@
</div>
<div class="row" *ngIf="filter$ | async">
<div class="col-lg-6">
<relying-party-form [provider]="filter$ | async"></relying-party-form>
<relying-party-form [resolver]="filter$ | async"></relying-party-form>
</div>
<div class="col-lg-6">
<attribute-release-form [provider]="filter$ | async"></attribute-release-form>
<attribute-release-form [resolver]="filter$ | async"></attribute-release-form>
</div>
</div>
</section>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,10 @@
</div>
<div class="row">
<div class="col-lg-6">
<relying-party-form [provider]="filter"></relying-party-form>
<relying-party-form [resolver]="filter"></relying-party-form>
</div>
<div class="col-lg-6">
<attribute-release-form [provider]="filter"></attribute-release-form>
<attribute-release-form [resolver]="filter"></attribute-release-form>
</div>
</div>
</section>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ describe('New Metadata Filter Page', () => {
],
imports: [
StoreModule.forRoot({
'metadata-filter': combineReducers(fromFilter.reducers),
'filter': combineReducers(fromFilter.reducers),
}),
ReactiveFormsModule,
ProviderEditorFormModule,
Expand Down
2 changes: 1 addition & 1 deletion ui/src/app/metadata/filter/filter.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export const routes: Routes = [
],
imports: [
RouterModule.forChild(routes),
StoreModule.forFeature('metadata-filter', reducers),
StoreModule.forFeature('filter', reducers),
EffectsModule.forFeature([FilterEffects, SearchIdEffects]),
CommonModule,
ReactiveFormsModule,
Expand Down
5 changes: 5 additions & 0 deletions ui/src/app/metadata/filter/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,16 @@ export const getCollectionFromStateFn = (state: FilterState) => state.collection
export const getFilterState = createFeatureSelector<FilterState>('filter');

export const getFilterFromState = createSelector(getFilterState, getFiltersFromStateFn);

export const getSelected = createSelector(getFilterFromState, fromFilter.getSelected);
export const getFilter = createSelector(getFilterFromState, fromFilter.getFilterChanges);
export const getPreview = createSelector(getFilterFromState, fromFilter.getPreview);
export const getSaving = createSelector(getFilterFromState, fromFilter.getSaving);

/*
* Select pieces of Search Collection
*/

export const getSearchFromState = createSelector(getFilterState, getSearchFromStateFn);
export const getEntityCollection = createSelector(getSearchFromState, fromSearch.getEntityIds);
export const getIsLoading = createSelector(getSearchFromState, fromSearch.getLoading);
Expand Down
5 changes: 2 additions & 3 deletions ui/src/app/metadata/manager/action/search.action.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Action } from '@ngrx/store';
import { MetadataProvider } from '../../domain/model/metadata-provider';
import { MetadataFilter } from '../../domain/model/metadata-filter';
import { MetadataEntity } from '../../domain/model';

export const ENTITY_SEARCH = '[Metadata Entity Search] Entity Search';
export const ENTITY_FILTER = '[Metadata Entity Filter] Entity Filter';
Expand All @@ -24,7 +23,7 @@ export class FilterAction implements Action {
export class SearchCompleteAction implements Action {
readonly type = ENTITY_SEARCH_COMPLETE;

constructor(public payload: Array<MetadataProvider | MetadataFilter>) { }
constructor(public payload: Array<MetadataEntity>) { }
}

export type Actions =
Expand Down
6 changes: 3 additions & 3 deletions ui/src/app/metadata/manager/container/manager.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@
<li *ngFor="let entity of limited$ | async; index as i" [ngClass]="{'mt-2': i > 0}" aria-label="Provider Item Accordion. Press Spacebar to open">
<entity-item
[entity]="entity"
[isOpen]="(entitiesOpen$ | async)[entity.id || entity.entityId]"
[isOpen]="(entitiesOpen$ | async)[entity.getId()]"
(select)="edit(entity)"
(toggle)="toggleProvider(entity)"
(toggle)="toggleEntity(entity)"
(preview)="openPreviewDialog(entity)"
(delete)="deleteProvider(entity)">
(delete)="deleteResolver(entity)">
</entity-item>
</li>
</ul>
Expand Down
28 changes: 14 additions & 14 deletions ui/src/app/metadata/manager/container/manager.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ describe('Metadata Manager Page', () => {
entityId: 'foo',
serviceProviderName: 'bar'
}),
provider = new FileBackedHttpMetadataResolver({
resolver = new FileBackedHttpMetadataResolver({
entityId: 'foo',
serviceProviderName: 'foo',
id: '1'
Expand Down Expand Up @@ -70,7 +70,7 @@ describe('Metadata Manager Page', () => {
expect(fixture).toBeDefined();
});

xdescribe('getPagedProviders method', () => {});
xdescribe('getPagedResolvers method', () => {});

describe('changePage method', () => {
it('should update the page value', () => {
Expand All @@ -79,24 +79,24 @@ describe('Metadata Manager Page', () => {
expect(instance.page).toBe(page);
});

it('should update the paged providers list', () => {
it('should update the paged resolvers list', () => {
let page = 2;
spyOn(instance, 'getPagedProviders');
spyOn(instance, 'getPagedResolvers');
instance.changePage(page);
expect(instance.getPagedProviders).toHaveBeenCalled();
expect(instance.getPagedResolvers).toHaveBeenCalled();
});
});

describe('toggleProvider method', () => {
describe('toggleResolver method', () => {
it('should fire a redux action', () => {
instance.toggleProvider(draft);
instance.toggleEntity(draft);
expect(store.dispatch).toHaveBeenCalled();
});
});

describe('openPreviewDialog method', () => {
it('should fire a redux action', () => {
instance.openPreviewDialog(provider);
instance.openPreviewDialog(resolver);
expect(store.dispatch).toHaveBeenCalled();
});
});
Expand All @@ -115,24 +115,24 @@ describe('Metadata Manager Page', () => {
describe('edit method', () => {
it('should route to the edit page', () => {
spyOn(router, 'navigate');
instance.edit(provider);
expect(router.navigate).toHaveBeenCalledWith(['provider', provider.id, 'edit']);
instance.edit(resolver);
expect(router.navigate).toHaveBeenCalledWith(['resolver', resolver.id, 'edit']);
});
it('should route to the wizard page', () => {
spyOn(router, 'navigate');
instance.edit(draft);
expect(router.navigate).toHaveBeenCalledWith(['provider', draft.entityId, 'wizard']);
expect(router.navigate).toHaveBeenCalledWith(['resolver', draft.entityId, 'wizard']);
});
});

describe('deleteProvider method', () => {
describe('deleteResolver method', () => {
it('should call the modal service', () => {
spyOn(modal, 'open').and.callFake(() => {
return {
result: Promise.resolve(true)
};
});
instance.deleteProvider(provider);
instance.deleteResolver(resolver);
expect(modal.open).toHaveBeenCalled();
});
it('should log an error to the console on failure', () => {
Expand All @@ -141,7 +141,7 @@ describe('Metadata Manager Page', () => {
result: Promise.reject(false)
};
});
instance.deleteProvider(provider);
instance.deleteResolver(resolver);
expect(modal.open).toHaveBeenCalled();
});
});
Expand Down
24 changes: 12 additions & 12 deletions ui/src/app/metadata/manager/container/manager.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import { RemoveDraftRequest } from '../../resolver/action/draft.action';
})
export class ManagerComponent implements OnInit {
searchQuery$: Observable<string>;
providers$: Observable<Metadata[]>;
resolvers$: Observable<MetadataEntity[]>;
loading$: Observable<boolean>;

total$: Observable<number>;
page = 1;
limit = 8;
limited$: Observable<Metadata[]>;
limited$: Observable<MetadataEntity[]>;

entitiesOpen$: Observable<{[key: string]: boolean}>;

Expand All @@ -41,16 +41,16 @@ export class ManagerComponent implements OnInit {
private router: Router,
private modalService: NgbModal
) {
this.providers$ = store.select(fromDashboard.getSearchResults);
this.resolvers$ = store.select(fromDashboard.getSearchResults);
this.searchQuery$ = store.select(fromDashboard.getSearchQuery);
this.loading$ = store.select(fromDashboard.getSearchLoading);
this.entitiesOpen$ = store.select(fromDashboard.getOpenProviders);
this.filtering$ = store.select(fromDashboard.getFilterType);
this.filtering$.subscribe(f => this.filtering = f);

this.total$ = this.providers$.pipe(map(list => list.length));
this.total$ = this.resolvers$.pipe(map(list => list.length));

this.limited$ = this.getPagedProviders(this.page, this.providers$);
this.limited$ = this.getPagedResolvers(this.page, this.resolvers$);

// this.providers$.subscribe(p => console.log(p));
}
Expand All @@ -60,12 +60,12 @@ export class ManagerComponent implements OnInit {
this.changeFilter('all');
}

getPagedProviders(page: number, list$: Observable<Metadata[]>): Observable<Metadata[]> {
getPagedResolvers(page: number, list$: Observable<MetadataEntity[]>): Observable<MetadataEntity[]> {
return list$.pipe(
map((providers: Metadata[]) => {
map((providers: MetadataEntity[]) => {
let maxIndex = (page * this.limit) - 1,
minIndex = ((page - 1) * this.limit);
return providers.filter((provider: Metadata, index: number) => (maxIndex >= index && index >= minIndex) );
return providers.filter((resolver: MetadataEntity, index: number) => (maxIndex >= index && index >= minIndex) );
})
);
}
Expand All @@ -76,7 +76,7 @@ export class ManagerComponent implements OnInit {

changePage(index: number): void {
this.page = index;
this.limited$ = this.getPagedProviders(index, this.providers$);
this.limited$ = this.getPagedResolvers(index, this.resolvers$);
}

search(query: string = ''): void {
Expand All @@ -85,18 +85,18 @@ export class ManagerComponent implements OnInit {
}

edit(entity: MetadataEntity): void {
this.router.navigate(['resolver', entity.getId(), entity.getId() ? 'edit' : 'wizard']);
this.router.navigate(['resolver', entity.getId(), entity.isDraft() ? 'wizard' : 'edit']);
}

toggleProvider(entity: MetadataEntity): void {
toggleEntity(entity: MetadataEntity): void {
this.store.dispatch(new ToggleEntityDisplay(entity.getId()));
}

openPreviewDialog(entity: MetadataEntity): void {
this.store.dispatch(new PreviewEntity(entity));
}

deleteProvider(entity: MetadataResolver): void {
deleteResolver(entity: MetadataResolver): void {
this.modalService
.open(DeleteDialogComponent)
.result
Expand Down
2 changes: 1 addition & 1 deletion ui/src/app/metadata/manager/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const reducers = {

export const getFeatureState = createFeatureSelector<DashboardState>('manager');
export const getDashboardState = createSelector(getFeatureState, (state: DashboardState) => state.manager);
export const getOpenProviders = createSelector(getDashboardState, (manager: fromDashboard.State) => manager.providersOpen);
export const getOpenProviders = createSelector(getDashboardState, (manager: fromDashboard.State) => manager.resolversOpen);

export const getSearchState = createSelector(getFeatureState,
(state: DashboardState) => state.search
Expand Down
Loading

0 comments on commit 527e747

Please sign in to comment.