Skip to content
Snippets Groups Projects
Commit 5d8c6358 authored by Kristof De Langhe's avatar Kristof De Langhe
Browse files

56434: FullItemPageComponent tests and improved coverage

parent b70a58d0
No related branches found
No related tags found
No related merge requests found
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ItemDataService } from '../../core/data/item-data.service';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { MockTranslateLoader } from '../../shared/mocks/mock-translate-loader';
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { TruncatePipe } from '../../shared/utils/truncate.pipe';
import { FullItemPageComponent } from './full-item-page.component';
import { MetadataService } from '../../core/metadata/metadata.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router-stub';
import { VarDirective } from '../../shared/utils/var.directive';
import { RouterTestingModule } from '@angular/router/testing';
import { Item } from '../../core/shared/item.model';
import { PageInfo } from '../../core/shared/page-info.model';
import { PaginatedList } from '../../core/data/paginated-list';
import { RemoteData } from '../../core/data/remote-data';
import { Observable } from 'rxjs/Observable';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { By } from '@angular/platform-browser';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
metadata: [
{
key: 'dc.title',
language: 'en_US',
value: 'test item'
}]
});
const routeStub = Object.assign(new ActivatedRouteStub(), {
data: Observable.of({ item: new RemoteData(false, false, true, null, mockItem) })
});
const metadataServiceStub = {
/* tslint:disable:no-empty */
processRemoteData: () => {}
/* tslint:enable:no-empty */
};
describe('FullItemPageComponent', () => {
let comp: FullItemPageComponent;
let fixture: ComponentFixture<FullItemPageComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: MockTranslateLoader
}
}), RouterTestingModule.withRoutes([]), BrowserAnimationsModule],
declarations: [FullItemPageComponent, TruncatePipe, VarDirective],
providers: [
{provide: ActivatedRoute, useValue: routeStub},
{provide: ItemDataService, useValue: {}},
{provide: MetadataService, useValue: metadataServiceStub}
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(FullItemPageComponent, {
set: {changeDetection: ChangeDetectionStrategy.Default}
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(FullItemPageComponent);
comp = fixture.componentInstance;
fixture.detectChanges();
}));
it('should display the item\'s metadata', () => {
const table = fixture.debugElement.query(By.css('table'));
for (const metadatum of mockItem.metadata) {
expect(table.nativeElement.innerHTML).toContain(metadatum.value);
}
})
});
......@@ -4,7 +4,7 @@ import { Item } from '../../../../core/shared/item.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
import { createRelationshipsObservable, getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
......@@ -28,7 +28,8 @@ const mockItem: Item = Object.assign(new Item(), {
key: 'journalissue.identifier.keyword',
language: 'en_US',
value: 'keyword'
}]
}],
relationships: createRelationshipsObservable()
});
describe('JournalIssuePageFieldsComponent', getEntityPageFieldsTest(mockItem, JournalIssuePageFieldsComponent));
......@@ -4,7 +4,7 @@ import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { JournalVolumePageFieldsComponent } from './journal-volume-page-fields.component';
import { getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
import { createRelationshipsObservable, getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
......@@ -23,7 +23,8 @@ const mockItem: Item = Object.assign(new Item(), {
key: 'journalvolume.identifier.description',
language: 'en_US',
value: 'desc'
}]
}],
relationships: createRelationshipsObservable()
});
describe('JournalVolumePageFieldsComponent', getEntityPageFieldsTest(mockItem, JournalVolumePageFieldsComponent));
......@@ -4,7 +4,7 @@ import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { OrgUnitPageFieldsComponent } from './orgunit-page-fields.component';
import { getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
import { createRelationshipsObservable, getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
......@@ -33,7 +33,8 @@ const mockItem: Item = Object.assign(new Item(), {
key: 'orgunit.identifier.description',
language: 'en_US',
value: 'desc'
}]
}],
relationships: createRelationshipsObservable()
});
describe('OrgUnitPageFieldsComponent', getEntityPageFieldsTest(mockItem, OrgUnitPageFieldsComponent));
......@@ -4,7 +4,7 @@ import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { PersonPageFieldsComponent } from './person-page-fields.component';
import { getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
import { createRelationshipsObservable, getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
......@@ -43,7 +43,8 @@ const mockItem: Item = Object.assign(new Item(), {
key: 'person.identifier.firstname',
language: 'en_US',
value: 'John'
}]
}],
relationships: createRelationshipsObservable()
});
describe('PersonPageFieldsComponent', getEntityPageFieldsTest(mockItem, PersonPageFieldsComponent));
......@@ -4,7 +4,7 @@ import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { ProjectPageFieldsComponent } from './project-page-fields.component';
import { getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
import { createRelationshipsObservable, getEntityPageFieldsTest } from '../shared/entity-page-fields.component.spec';
const mockItem: Item = Object.assign(new Item(), {
bitstreams: Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), []))),
......@@ -33,7 +33,8 @@ const mockItem: Item = Object.assign(new Item(), {
key: 'project.identifier.keyword',
language: 'en_US',
value: 'keyword'
}]
}],
relationships: createRelationshipsObservable()
});
describe('ProjectPageFieldsComponent', getEntityPageFieldsTest(mockItem, ProjectPageFieldsComponent));
......@@ -11,6 +11,12 @@ import { ITEM } from '../../../../shared/entities/switcher/entity-type-switcher.
import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { isNotEmpty } from '../../../../shared/empty.util';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { RelationshipType } from '../../../../core/shared/entities/relationship-type.model';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { RemoteData } from '../../../../core/data/remote-data';
import { Relationship } from '../../../../core/shared/entities/relationship.model';
import { Observable } from 'rxjs/Observable';
import { PageInfo } from '../../../../core/shared/page-info.model';
/**
* Create a generic test for an entity-page-fields component using a mockItem and the type of component
......@@ -24,6 +30,12 @@ export function getEntityPageFieldsTest(mockItem: Item, component) {
let comp: any;
let fixture: ComponentFixture<any>;
const searchFixedFilterServiceStub = {
/* tslint:disable:no-empty */
getQueryByRelations: () => {}
/* tslint:enable:no-empty */
};
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
......@@ -36,7 +48,7 @@ export function getEntityPageFieldsTest(mockItem: Item, component) {
providers: [
{provide: ITEM, useValue: mockItem},
{provide: ItemDataService, useValue: {}},
{provide: SearchFixedFilterService, useValue: {}},
{provide: SearchFixedFilterService, useValue: searchFixedFilterServiceStub},
{provide: TruncatableService, useValue: {}}
],
......@@ -79,3 +91,11 @@ export function containsFieldInput(fields: DebugElement[], metadataKey: string):
}
return false;
}
export function createRelationshipsObservable() {
return Observable.of(new RemoteData(false, false, true, null, new PaginatedList(new PageInfo(), [
Object.assign(new Relationship(), {
relationshipType: Observable.of(new RemoteData(false, false, true, null, new RelationshipType()))
})
])));
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment