From cbfc396b297152bf0261854b0b81f531d9709da3 Mon Sep 17 00:00:00 2001 From: lotte Date: Mon, 25 Nov 2019 11:09:44 +0100 Subject: [PATCH] fixed some tests --- karma.conf.js | 6 +- src/app/app.module.ts | 2 +- src/app/core/data/data.service.spec.ts | 6 +- src/app/core/data/relationship.service.ts | 17 ++-- .../name-variant-modal.component.spec.ts | 8 +- .../name-variant-modal.component.ts | 3 +- ...-list-submission-element.component.spec.ts | 8 +- ...c-form-control-container.component.spec.ts | 33 +++++-- ...ynamic-form-control-container.component.ts | 9 +- .../relationship.effects.ts | 3 +- .../page-size-selector.component.spec.ts | 89 +++++++++++++++++++ .../search-settings.component.spec.ts | 32 ++----- 12 files changed, 162 insertions(+), 54 deletions(-) create mode 100644 src/app/shared/page-size-selector/page-size-selector.component.spec.ts diff --git a/karma.conf.js b/karma.conf.js index 456c2ecd99..f40c8b2166 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -15,7 +15,11 @@ module.exports = function (config) { }; var configuration = { - + client: { + jasmine: { + random: false + } + }, // base path that will be used to resolve all patterns (e.g. files, exclude) basePath: '', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 916788df8c..9fe1b40274 100755 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -76,7 +76,7 @@ const ENTITY_IMPORTS = [ IMPORTS.push( StoreDevtoolsModule.instrument({ - maxAge: 100, + maxAge: 1000, logOnly: ENV_CONFIG.production, }) ); diff --git a/src/app/core/data/data.service.spec.ts b/src/app/core/data/data.service.spec.ts index 78558c0a04..8e6ed2c407 100644 --- a/src/app/core/data/data.service.spec.ts +++ b/src/app/core/data/data.service.spec.ts @@ -53,7 +53,8 @@ class DummyChangeAnalyzer implements ChangeAnalyzer { } } -fdescribe('DataService', () => { + +describe('DataService', () => { let service: TestService; let options: FindAllOptions; const requestService = {generateRequestId: () => uuidv4()} as RequestService; @@ -89,6 +90,7 @@ fdescribe('DataService', () => { comparator, ); } + service = initTestService(); describe('getFindAllHref', () => { @@ -190,7 +192,7 @@ fdescribe('DataService', () => { dso2.self = selfLink; dso2.metadata = [{ key: 'dc.title', value: name2 }]; - spyOn(service, 'findById').and.returnValues(observableOf(dso)); + spyOn(service, 'findByHref').and.returnValues(observableOf(dso)); spyOn(objectCache, 'getObjectBySelfLink').and.returnValues(observableOf(dso)); spyOn(objectCache, 'addPatch'); }); diff --git a/src/app/core/data/relationship.service.ts b/src/app/core/data/relationship.service.ts index 3673a6c94f..74723bfc3d 100644 --- a/src/app/core/data/relationship.service.ts +++ b/src/app/core/data/relationship.service.ts @@ -3,7 +3,7 @@ import { RequestService } from './request.service'; import { HALEndpointService } from '../shared/hal-endpoint.service'; import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; import { hasValue, hasValueOperator, isNotEmpty, isNotEmptyOperator } from '../../shared/empty.util'; -import { distinctUntilChanged, filter, map, mergeMap, startWith, switchMap, take, tap } from 'rxjs/operators'; +import { distinctUntilChanged, filter, map, mergeMap, skipWhile, startWith, switchMap, take, tap } from 'rxjs/operators'; import { configureRequest, getRemoteDataPayload, getResponseFromEntry, getSucceededRemoteData } from '../shared/operators'; import { DeleteRequest, FindAllOptions, PostRequest, RestRequest } from './request.models'; import { Observable } from 'rxjs/internal/Observable'; @@ -137,7 +137,7 @@ export class RelationshipService extends DataService { this.requestService.hasByHrefObservable(item.self) ).pipe( filter(([existsInOC, existsInRC]) => !existsInOC && !existsInRC), - take(1), + tap(t => console.log(t)), switchMap(() => this.itemService.findByHref(item.self).pipe(take(1))) ).subscribe(); } @@ -318,8 +318,6 @@ export class RelationshipService extends DataService { }) ) ), - tap(() => this.removeRelationshipItemsFromCache(item1)), - tap(() => this.removeRelationshipItemsFromCache(item2)), switchMap((relationshipAndType: { relation: Relationship, type: RelationshipType }) => { const { relation, type } = relationshipAndType; let updatedRelationship; @@ -329,7 +327,16 @@ export class RelationshipService extends DataService { updatedRelationship = Object.assign(new Relationship(), relation, { leftwardValue: nameVariant }); } return this.update(updatedRelationship); - }) + }), + // skipWhile((relationshipRD: RemoteData) => !relationshipRD.isSuccessful) + tap((relationshipRD: RemoteData) => { + console.log(relationshipRD.payload); + if (relationshipRD.hasSucceeded) { + this.removeRelationshipItemsFromCache(item1); + this.removeRelationshipItemsFromCache(item2); + } + }), ) } + } diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.spec.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.spec.ts index 2f041bc391..4af7b8161a 100644 --- a/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.spec.ts +++ b/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.spec.ts @@ -1,6 +1,8 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { NameVariantModalComponent } from './name-variant-modal.component'; +import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateModule } from '@ngx-translate/core'; describe('NameVariantModalComponent', () => { let component: NameVariantModalComponent; @@ -8,9 +10,11 @@ describe('NameVariantModalComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ NameVariantModalComponent ] + declarations: [NameVariantModalComponent], + imports: [NgbModule.forRoot(), TranslateModule.forRoot()], + providers: [NgbActiveModal] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.ts index ea036e0b0f..47b0a6f4d2 100644 --- a/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.ts +++ b/src/app/entity-groups/research-entities/submission/item-list-elements/person/name-variant-modal/name-variant-modal.component.ts @@ -9,8 +9,7 @@ import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; export class NameVariantModalComponent implements OnInit { @Input() value: string; - constructor(private modalService: NgbModal, - public modal: NgbActiveModal) { + constructor(public modal: NgbActiveModal) { } ngOnInit() { diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.spec.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.spec.ts index f7f800a1aa..ed2dbb4b38 100644 --- a/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.spec.ts +++ b/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.spec.ts @@ -14,7 +14,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { ItemDataService } from '../../../../../core/data/item-data.service'; import { SelectableListService } from '../../../../../shared/object-list/selectable-list/selectable-list.service'; import { Store } from '@ngrx/store'; -import { AppState } from '../../../../../app.reducer'; +import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/testing/utils'; let personListElementComponent: PersonSearchResultListSubmissionElementComponent; let fixture: ComponentFixture; @@ -23,7 +23,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign( new ItemSearchResult(), { indexableObject: Object.assign(new Item(), { - bitstreams: observableOf({}), + bitstreams: createSuccessfulRemoteDataObject$([]), metadata: { 'dc.title': [ { @@ -44,7 +44,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign( new ItemSearchResult(), { indexableObject: Object.assign(new Item(), { - bitstreams: observableOf({}), + bitstreams: createSuccessfulRemoteDataObject$([]), metadata: { 'dc.title': [ { @@ -61,7 +61,7 @@ const mockRelationshipService = { getNameVariant: () => observableOf(nameVariant) }; -describe('PersonSearchResultListElementComponent', () => { +describe('PersonSearchResultListElementSubmissionComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [PersonSearchResultListSubmissionElementComponent, TruncatePipe], diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts index a6d4af5acb..79d279fdf1 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts @@ -1,5 +1,5 @@ import { async, ComponentFixture, inject, TestBed } from '@angular/core/testing'; -import { CUSTOM_ELEMENTS_SCHEMA, DebugElement, SimpleChange } from '@angular/core'; +import { CUSTOM_ELEMENTS_SCHEMA, DebugElement, NgZone, SimpleChange } from '@angular/core'; import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; import { By } from '@angular/platform-browser'; @@ -65,6 +65,12 @@ import { DsDatePickerInlineComponent } from './models/date-picker-inline/dynamic import { RelationshipService } from '../../../../core/data/relationship.service'; import { SelectableListService } from '../../../object-list/selectable-list/selectable-list.service'; import { ItemDataService } from '../../../../core/data/item-data.service'; +import { Store } from '@ngrx/store'; +import { SubmissionObjectDataService } from '../../../../core/submission/submission-object-data.service'; +import { Item } from '../../../../core/shared/item.model'; +import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model'; +import { of as observableOf } from 'rxjs'; +import { createSuccessfulRemoteDataObject } from '../../../testing/utils'; describe('DsDynamicFormControlContainerComponent test suite', () => { @@ -103,7 +109,7 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { repeatable: false, submissionId: '1234' }), - new DynamicTagModel({ id: 'tag', metadataFields: [], repeatable: false, submissionId: '1234'}), + new DynamicTagModel({ id: 'tag', metadataFields: [], repeatable: false, submissionId: '1234' }), new DynamicListCheckboxGroupModel({ id: 'checkboxList', authorityOptions: authorityOptions, @@ -126,7 +132,7 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { repeatable: false, metadataFields: [] }), - new DynamicDsDatePickerModel({ id: 'datepicker'}), + new DynamicDsDatePickerModel({ id: 'datepicker' }), new DynamicLookupModel({ id: 'lookup', metadataFields: [], repeatable: false, submissionId: '1234' }), new DynamicLookupNameModel({ id: 'lookupName', metadataFields: [], repeatable: false, submissionId: '1234' }), new DynamicQualdropModel({ id: 'combobox', readOnly: false, required: false }) @@ -137,7 +143,9 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { let component: DsDynamicFormControlContainerComponent; let debugElement: DebugElement; let testElement: DebugElement; - + const testItem: Item = new Item(); + const testWSI: WorkspaceItem = new WorkspaceItem(); + testWSI.item = observableOf(createSuccessfulRemoteDataObject(testItem)); beforeEach(async(() => { TestBed.overrideModule(BrowserDynamicTestingModule, { @@ -156,20 +164,33 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { DynamicFormsCoreModule.forRoot(), SharedModule, TranslateModule.forRoot(), - TextMaskModule + TextMaskModule, ], providers: [ DsDynamicFormControlContainerComponent, DynamicFormService, { provide: RelationshipService, useValue: {} }, { provide: SelectableListService, useValue: {} }, - { provide: ItemDataService, useValue: {} } + { provide: ItemDataService, useValue: {} }, + { provide: Store, useValue: {} }, + { provide: RelationshipService, useValue: {} }, + { provide: SelectableListService, useValue: {} }, + { + provide: SubmissionObjectDataService, + useValue: { + findById: () => observableOf(createSuccessfulRemoteDataObject(testWSI)) + } + }, + { provide: NgZone, useValue: new NgZone({}) } ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }).compileComponents().then(() => { fixture = TestBed.createComponent(DsDynamicFormControlContainerComponent); + const ngZone = TestBed.get(NgZone); + + spyOn(ngZone, 'runOutsideAngular').and.callFake((fn: Function) => fn()); component = fixture.componentInstance; debugElement = fixture.debugElement; }); diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts index 25708eb90f..aedbe31fd2 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts @@ -71,10 +71,8 @@ import { DsDynamicRelationGroupComponent } from './models/relation-group/dynamic import { DYNAMIC_FORM_CONTROL_TYPE_RELATION_GROUP } from './models/relation-group/dynamic-relation-group.model'; import { DsDatePickerInlineComponent } from './models/date-picker-inline/dynamic-date-picker-inline.component'; import { map, switchMap, take, tap } from 'rxjs/operators'; -import { zip as observableZip } from 'rxjs'; -import { combineLatest as observableCombineLatest } from 'rxjs'; +import { combineLatest as observableCombineLatest, Observable } from 'rxjs'; import { SelectableListState } from '../../../object-list/selectable-list/selectable-list.reducer'; -import { Observable } from 'rxjs'; import { SearchResult } from '../../../search/search-result.model'; import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; @@ -96,7 +94,6 @@ import { PaginatedList } from '../../../../core/data/paginated-list'; import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; import { ItemMetadataRepresentation } from '../../../../core/shared/metadata-representation/item/item-metadata-representation.model'; import { MetadataValue } from '../../../../core/shared/metadata.models'; -import * as uuidv4 from 'uuid/v4'; export function dsDynamicFormControlMapFn(model: DynamicFormControlModel): Type | null { switch (model.type) { @@ -208,7 +205,6 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo protected validationService: DynamicFormValidationService, protected translateService: TranslateService, private modalService: NgbModal, - private relationService: RelationshipService, private selectableListService: SelectableListService, private itemService: ItemDataService, private relationshipService: RelationshipService, @@ -220,7 +216,6 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo } ngOnInit(): void { - const q = uuidv4(); this.hasRelationLookup = hasValue(this.model.relationship); if (this.hasRelationLookup) { this.listId = 'list-' + this.model.relationship.relationshipType; @@ -231,7 +226,7 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo switchMap((submissionObject: SubmissionObject) => (submissionObject.item as Observable>).pipe(getAllSucceededRemoteData(), getRemoteDataPayload()))); this.item$.pipe( take(1), - switchMap((item: Item) => this.relationService.getRelatedItemsByLabel(item, this.model.relationship.relationshipType)), + switchMap((item: Item) => this.relationshipService.getRelatedItemsByLabel(item, this.model.relationship.relationshipType)), map((items: RemoteData>) => items.payload.page.map((item) => Object.assign(new ItemSearchResult(), { indexableObject: item }))), ).subscribe((relatedItems: SearchResult[]) => this.selectableListService.select(this.listId, relatedItems)); diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/relationship.effects.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/relationship.effects.ts index c2e075549f..c0e2c9c1a6 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/relationship.effects.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/relationship.effects.ts @@ -9,6 +9,7 @@ import { hasNoValue, hasValue, hasValueOperator } from '../../../../empty.util'; import { Relationship } from '../../../../../core/shared/item-relationships/relationship.model'; import { RelationshipType } from '../../../../../core/shared/item-relationships/relationship-type.model'; import { RelationshipTypeService } from '../../../../../core/data/relationship-type.service'; +import { getRemoteDataPayload, getSucceededRemoteData } from '../../../../../core/shared/operators'; const DEBOUNCE_TIME = 5000; @@ -85,7 +86,7 @@ export class RelationshipEffects { this.nameVariantUpdates[identifier] = nameVariant; } else { this.relationshipService.updateNameVariant(item1, item2, relationshipType, nameVariant) - .pipe(take(1)) + .pipe() .subscribe(); } } diff --git a/src/app/shared/page-size-selector/page-size-selector.component.spec.ts b/src/app/shared/page-size-selector/page-size-selector.component.spec.ts new file mode 100644 index 0000000000..562fd6c6cb --- /dev/null +++ b/src/app/shared/page-size-selector/page-size-selector.component.spec.ts @@ -0,0 +1,89 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { of as observableOf } from 'rxjs'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterTestingModule } from '@angular/router/testing'; +import { ActivatedRoute } from '@angular/router'; +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { By } from '@angular/platform-browser'; +import { first, take } from 'rxjs/operators'; +import { PageSizeSelectorComponent } from './page-size-selector.component'; +import { PaginationComponentOptions } from '../pagination/pagination-component-options.model'; +import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; +import { EnumKeysPipe } from '../utils/enum-keys-pipe'; +import { VarDirective } from '../utils/var.directive'; +import { SEARCH_CONFIG_SERVICE } from '../../+my-dspace-page/my-dspace-page.component'; + +describe('PageSizeSelectorComponent', () => { + + let comp: PageSizeSelectorComponent; + let fixture: ComponentFixture; + + const pagination: PaginationComponentOptions = new PaginationComponentOptions(); + pagination.id = 'search-results-pagination'; + pagination.currentPage = 1; + pagination.pageSize = 10; + const sort: SortOptions = new SortOptions('score', SortDirection.DESC); + + const queryParam = 'test query'; + const scopeParam = '7669c72a-3f2a-451f-a3b9-9210e7a4c02f'; + const paginatedSearchOptions = { + query: queryParam, + scope: scopeParam, + pagination, + sort + }; + + const activatedRouteStub = { + queryParams: observableOf({ + query: queryParam, + scope: scopeParam + }) + }; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([])], + declarations: [PageSizeSelectorComponent, EnumKeysPipe, VarDirective], + providers: [ + { provide: ActivatedRoute, useValue: activatedRouteStub }, + { + provide: SEARCH_CONFIG_SERVICE, + useValue: { + paginatedSearchOptions: observableOf(paginatedSearchOptions), + } + }, + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PageSizeSelectorComponent); + comp = fixture.componentInstance; + + // SearchPageComponent test instance + fixture.detectChanges(); + + }); + + it('it should show the size settings with the respective selectable options', (done) => { + (comp as any).paginationOptions$.pipe(first()).subscribe((options) => { + const pageSizeSetting = fixture.debugElement.query(By.css('div.page-size-settings')); + expect(pageSizeSetting).toBeDefined(); + const childElements = pageSizeSetting.query(By.css('.form-control')).children; + expect(childElements.length).toEqual(options.pageSizeOptions.length); + done() + } + ) + }); + + it('should have the proper rpp value selected by default', (done) => { + (comp as any).paginationOptions$.pipe(take(1)).subscribe((options) => { + const pageSizeSetting = fixture.debugElement.query(By.css('div.page-size-settings')); + const childElementToBeSelected = pageSizeSetting.query(By.css('.form-control option[value="10"][selected="selected"]')); + expect(childElementToBeSelected).toBeDefined(); + done(); + }); + }); + +}); diff --git a/src/app/shared/search/search-settings/search-settings.component.spec.ts b/src/app/shared/search/search-settings/search-settings.component.spec.ts index 0c62c59aa7..2496ea36d2 100644 --- a/src/app/shared/search/search-settings/search-settings.component.spec.ts +++ b/src/app/shared/search/search-settings/search-settings.component.spec.ts @@ -12,7 +12,6 @@ import { NO_ERRORS_SCHEMA } from '@angular/core'; import { EnumKeysPipe } from '../../utils/enum-keys-pipe'; import { By } from '@angular/platform-browser'; import { SearchFilterService } from '../../../core/shared/search/search-filter.service'; -import { hot } from 'jasmine-marbles'; import { VarDirective } from '../../utils/var.directive'; import { first } from 'rxjs/operators'; import { SEARCH_CONFIG_SERVICE } from '../../../+my-dspace-page/my-dspace-page.component'; @@ -75,12 +74,8 @@ describe('SearchSettingsComponent', () => { { provide: SEARCH_CONFIG_SERVICE, useValue: { - paginatedSearchOptions: hot('a', { - a: paginatedSearchOptions - }), - getCurrentScope: hot('a', { - a: 'test-id' - }), + paginatedSearchOptions: observableOf(paginatedSearchOptions), + getCurrentScope: observableOf('test-id') } }, ], @@ -100,43 +95,34 @@ describe('SearchSettingsComponent', () => { }); - it('it should show the order settings with the respective selectable options', () => { + it('it should show the order settings with the respective selectable options', (done) => { (comp as any).searchOptions$.pipe(first()).subscribe((options) => { fixture.detectChanges(); const orderSetting = fixture.debugElement.query(By.css('div.result-order-settings')); expect(orderSetting).toBeDefined(); const childElements = orderSetting.query(By.css('.form-control')).children; expect(childElements.length).toEqual(comp.searchOptionPossibilities.length); + done(); }); }); - it('it should show the size settings with the respective selectable options', () => { + it('it should show the size settings', (done) => { (comp as any).searchOptions$.pipe(first()).subscribe((options) => { fixture.detectChanges(); - const pageSizeSetting = fixture.debugElement.query(By.css('div.page-size-settings')); + const pageSizeSetting = fixture.debugElement.query(By.css('page-size-settings')); expect(pageSizeSetting).toBeDefined(); - const childElements = pageSizeSetting.query(By.css('.form-control')).children; - expect(childElements.length).toEqual(options.pagination.pageSizeOptions.length); + done(); } ) }); - it('should have the proper order value selected by default', () => { + it('should have the proper order value selected by default', (done) => { (comp as any).searchOptions$.pipe(first()).subscribe((options) => { fixture.detectChanges(); const orderSetting = fixture.debugElement.query(By.css('div.result-order-settings')); const childElementToBeSelected = orderSetting.query(By.css('.form-control option[value="0"][selected="selected"]')); expect(childElementToBeSelected).toBeDefined(); + done(); }); }); - - it('should have the proper rpp value selected by default', () => { - (comp as any).searchOptions$.pipe(first()).subscribe((options) => { - fixture.detectChanges(); - const pageSizeSetting = fixture.debugElement.query(By.css('div.page-size-settings')); - const childElementToBeSelected = pageSizeSetting.query(By.css('.form-control option[value="10"][selected="selected"]')); - expect(childElementToBeSelected).toBeDefined(); - }); - }); - });