Unit test fixes

This commit is contained in:
Alisa Ismailati
2023-11-01 09:32:11 +01:00
parent 3cf3cc8850
commit d4d0fe0cbe
180 changed files with 2567 additions and 1101 deletions

View File

@@ -11,6 +11,8 @@ import { SelectableObject } from '../../../shared/object-list/selectable-list/se
import { PageInfo } from '../../../core/shared/page-info.model';
import { buildPaginatedList } from '../../../core/data/paginated-list.model';
import { createSuccessfulRemoteDataObject } from '../../../shared/remote-data.utils';
import { ThemeService } from '../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
describe('BulkAccessBrowseComponent', () => {
let component: BulkAccessBrowseComponent;
@@ -23,22 +25,25 @@ describe('BulkAccessBrowseComponent', () => {
const selected1 = new SelectableObject(value1);
const selected2 = new SelectableObject(value2);
const testSelection = { id: listID1, selection: [selected1, selected2] } ;
const testSelection = { id: listID1, selection: [selected1, selected2] };
const selectableListService = jasmine.createSpyObj('SelectableListService', ['getSelectableList', 'deselectAll']);
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
NgbAccordionModule,
NgbNavModule,
TranslateModule.forRoot(),
BulkAccessBrowseComponent
],
providers: [{ provide: SelectableListService, useValue: selectableListService },],
schemas: [
],
providers: [
{ provide: SelectableListService, useValue: selectableListService },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [
NO_ERRORS_SCHEMA
]
}).compileComponents();
]
}).compileComponents();
}));
beforeEach(() => {
@@ -73,7 +78,7 @@ describe('BulkAccessBrowseComponent', () => {
'totalElements': 2,
'totalPages': 1,
'currentPage': 1
}), [selected1, selected2]) ;
}), [selected1, selected2]);
const rd = createSuccessfulRemoteDataObject(list);
expect(component.objectsSelected$.value).toEqual(rd);

View File

@@ -13,6 +13,9 @@ import { Process } from '../../process-page/processes/process.model';
import { RouterTestingModule } from '@angular/router/testing';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { BulkAccessSettingsComponent } from './settings/bulk-access-settings.component';
describe('BulkAccessComponent', () => {
let component: BulkAccessComponent;
@@ -69,18 +72,26 @@ describe('BulkAccessComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
imports: [
RouterTestingModule,
TranslateModule.forRoot(),
BulkAccessComponent
],
providers: [
],
providers: [
{ provide: BulkAccessControlService, useValue: bulkAccessControlServiceMock },
{ provide: NotificationsService, useValue: NotificationsServiceStub },
{ provide: SelectableListService, useValue: selectableListServiceMock }
],
schemas: [NO_ERRORS_SCHEMA]
})
{ provide: SelectableListService, useValue: selectableListServiceMock },
{ provide: ThemeService, useValue: getMockThemeService() }
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(BulkAccessComponent, {
remove: {
imports: [
BulkAccessSettingsComponent,
]
}
})
.compileComponents();
});

View File

@@ -3,7 +3,7 @@ import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
import { ComponentFixture, fakeAsync, flush, inject, TestBed, tick, waitForAsync } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserModule, By } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
import { Observable, of as observableOf } from 'rxjs';
@@ -30,6 +30,9 @@ import { PaginationService } from '../../../../core/pagination/pagination.servic
import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { PaginationComponent } from '../../../../shared/pagination/pagination.component';
import { ContextHelpDirective } from '../../../../shared/context-help.directive';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
describe('MembersListComponent', () => {
let component: MembersListComponent;
@@ -136,9 +139,16 @@ describe('MembersListComponent', () => {
{ provide: Router, useValue: new RouterMock() },
{ provide: PaginationService, useValue: paginationService },
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
})
.overrideComponent(MembersListComponent, {
remove: {
imports: [PaginationComponent, ContextHelpDirective]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -3,7 +3,7 @@ import { NO_ERRORS_SCHEMA, DebugElement } from '@angular/core';
import { ComponentFixture, fakeAsync, flush, inject, TestBed, tick, waitForAsync } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserModule, By } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
import { Observable, of as observableOf, BehaviorSubject } from 'rxjs';
@@ -31,6 +31,9 @@ import { PaginationService } from '../../../../core/pagination/pagination.servic
import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { ContextHelpDirective } from '../../../../shared/context-help.directive';
import { PaginationComponent } from '../../../../shared/pagination/pagination.component';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
describe('SubgroupsListComponent', () => {
let component: SubgroupsListComponent;
@@ -59,23 +62,36 @@ describe('SubgroupsListComponent', () => {
getSubgroups(): Group {
return this.activeGroup;
},
findListByHref(_href: string): Observable<RemoteData<PaginatedList<Group>>> {
findListByHref(
_href: string
): Observable<RemoteData<PaginatedList<Group>>> {
return this.subgroups$.pipe(
map((currentGroups: Group[]) => {
return createSuccessfulRemoteDataObject(buildPaginatedList<Group>(new PageInfo(), currentGroups));
return createSuccessfulRemoteDataObject(
buildPaginatedList<Group>(new PageInfo(), currentGroups)
);
})
);
},
getGroupEditPageRouterLink(group: Group): string {
return '/access-control/groups/' + group.id;
},
searchGroups(query: string): Observable<RemoteData<PaginatedList<Group>>> {
searchGroups(
query: string
): Observable<RemoteData<PaginatedList<Group>>> {
if (query === '') {
return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), allGroups));
return createSuccessfulRemoteDataObject$(
buildPaginatedList(new PageInfo(), allGroups)
);
}
return createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), []));
return createSuccessfulRemoteDataObject$(
buildPaginatedList(new PageInfo(), [])
);
},
addSubGroupToGroup(parentGroup, subgroup: Group): Observable<RestResponse> {
addSubGroupToGroup(
parentGroup,
subgroup: Group
): Observable<RestResponse> {
this.subgroups$.next([...this.subgroups$.getValue(), subgroup]);
return observableOf(new RestResponse(true, 200, 'Success'));
},
@@ -85,38 +101,61 @@ describe('SubgroupsListComponent', () => {
clearGroupLinkRequests() {
// empty
},
deleteSubGroupFromGroup(parentGroup, subgroup: Group): Observable<RestResponse> {
this.subgroups$.next(this.subgroups$.getValue().filter((group: Group) => {
if (group.id !== subgroup.id) {
return group;
}
}));
deleteSubGroupFromGroup(
parentGroup,
subgroup: Group
): Observable<RestResponse> {
this.subgroups$.next(
this.subgroups$.getValue().filter((group: Group) => {
if (group.id !== subgroup.id) {
return group;
}
})
);
return observableOf(new RestResponse(true, 200, 'Success'));
}
},
};
routerStub = new RouterMock();
builderService = getMockFormBuilderService();
translateService = getMockTranslateService();
paginationService = new PaginationServiceStub();
TestBed.configureTestingModule({
imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule,
imports: [
CommonModule,
NgbModule,
FormsModule,
ReactiveFormsModule,
BrowserModule,
// ContextHelpDirective,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), SubgroupsListComponent],
providers: [SubgroupsListComponent,
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock,
},
}),
SubgroupsListComponent,
],
providers: [
SubgroupsListComponent,
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: GroupDataService, useValue: groupsDataServiceStub },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{
provide: NotificationsService,
useValue: new NotificationsServiceStub(),
},
{ provide: FormBuilderService, useValue: builderService },
{ provide: Router, useValue: routerStub },
{ provide: PaginationService, useValue: paginationService },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(SubgroupsListComponent, {
remove: {
imports: [ContextHelpDirective, PaginationComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -19,9 +19,9 @@ import { NoContent } from '../../../../core/shared/NoContent.model';
import { PaginationService } from '../../../../core/pagination/pagination.service';
import { followLink } from '../../../../shared/utils/follow-link-config.model';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { AsyncPipe, NgForOf, NgIf } from "@angular/common";
import { ContextHelpDirective } from "../../../../shared/context-help.directive";
import { PaginationComponent } from "../../../../shared/pagination/pagination.component";
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
import { ContextHelpDirective } from '../../../../shared/context-help.directive';
import { PaginationComponent } from '../../../../shared/pagination/pagination.component';
/**
* Keys to keep track of specific subscriptions

View File

@@ -2,6 +2,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { AdminCurationTasksComponent } from './admin-curation-tasks.component';
import { TranslateModule } from '@ngx-translate/core';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CurationFormComponent } from '../../curation-form/curation-form.component';
describe('AdminCurationTasksComponent', () => {
let comp: AdminCurationTasksComponent;
@@ -9,9 +10,15 @@ describe('AdminCurationTasksComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), AdminCurationTasksComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [TranslateModule.forRoot(), AdminCurationTasksComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(AdminCurationTasksComponent, {
remove: {
imports: [CurationFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -1,6 +1,6 @@
import { Component } from '@angular/core';
import { CurationFormComponent } from "../../curation-form/curation-form.component";
import { TranslateModule } from "@ngx-translate/core";
import { CurationFormComponent } from '../../curation-form/curation-form.component';
import { TranslateModule } from '@ngx-translate/core';
/**
* Component responsible for rendering the system wide Curation Task UI

View File

@@ -14,6 +14,10 @@ import { NotificationsServiceStub } from '../../../../shared/testing/notificatio
import { RouterStub } from '../../../../shared/testing/router.stub';
import { AddBitstreamFormatComponent } from './add-bitstream-format.component';
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
import { FormService } from '../../../../shared/form/form.service';
import { getMockFormService } from '../../../../shared/mocks/form-service.mock';
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
import { FormatFormComponent } from '../format-form/format-form.component';
describe('AddBitstreamFormatComponent', () => {
let comp: AddBitstreamFormatComponent;
@@ -33,6 +37,15 @@ describe('AddBitstreamFormatComponent', () => {
let notificationService: NotificationsServiceStub;
let bitstreamFormatDataService: BitstreamFormatDataService;
const formBuilderServiceStub = {
createFormGroup: () => {
return {
patchValue: () => { },
reset(_value?: any, _options?: { onlySelf?: boolean; emitEvent?: boolean; }): void { },
};
}
};
const initAsync = () => {
router = new RouterStub();
notificationService = new NotificationsServiceStub();
@@ -42,14 +55,22 @@ describe('AddBitstreamFormatComponent', () => {
});
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, AddBitstreamFormatComponent],
providers: [
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, AddBitstreamFormatComponent],
providers: [
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
{ provide: FormService, useValue: getMockFormService() },
{ provide: FormBuilderService, useValue: formBuilderServiceStub },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(AddBitstreamFormatComponent, {
remove: {
imports: [FormatFormComponent]
}
})
.compileComponents();
};
const initBeforeEach = () => {
@@ -81,14 +102,22 @@ describe('AddBitstreamFormatComponent', () => {
});
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, AddBitstreamFormatComponent],
providers: [
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, AddBitstreamFormatComponent],
providers: [
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
{ provide: FormService, useValue: getMockFormService() },
{ provide: FormBuilderService, useValue: formBuilderServiceStub },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(AddBitstreamFormatComponent, {
remove: {
imports: [FormatFormComponent]
}
})
.compileComponents();
}));
beforeEach(initBeforeEach);
it('should send the updated form to the service, show a notification and navigate to ', () => {

View File

@@ -19,6 +19,7 @@ import {
createSuccessfulRemoteDataObject,
createSuccessfulRemoteDataObject$
} from '../../../../shared/remote-data.utils';
import { FormatFormComponent } from '../format-form/format-form.component';
describe('EditBitstreamFormatComponent', () => {
let comp: EditBitstreamFormatComponent;
@@ -52,15 +53,22 @@ describe('EditBitstreamFormatComponent', () => {
});
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, EditBitstreamFormatComponent],
providers: [
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, EditBitstreamFormatComponent],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(EditBitstreamFormatComponent, {
remove: {
imports: [FormatFormComponent]
}
})
.compileComponents();
};
const initBeforeEach = () => {
@@ -102,15 +110,21 @@ describe('EditBitstreamFormatComponent', () => {
});
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, EditBitstreamFormatComponent],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, EditBitstreamFormatComponent],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
{ provide: Router, useValue: router },
{ provide: NotificationsService, useValue: notificationService },
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatDataService },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(EditBitstreamFormatComponent, {
remove: {
imports: [FormatFormComponent]
}
})
.compileComponents();
}));
beforeEach(initBeforeEach);
it('should send the updated form to the service, show a notification and navigate to ', () => {

View File

@@ -12,6 +12,7 @@ import { BitstreamFormatSupportLevel } from '../../../../core/shared/bitstream-f
import { DynamicCheckboxModel, DynamicFormArrayModel, DynamicInputModel } from '@ng-dynamic-forms/core';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { isEmpty } from '../../../../shared/empty.util';
import { FormComponent } from '../../../../shared/form/form.component';
describe('FormatFormComponent', () => {
let comp: FormatFormComponent;
@@ -40,12 +41,24 @@ describe('FormatFormComponent', () => {
const initAsync = () => {
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), ReactiveFormsModule, FormsModule, TranslateModule.forRoot(), NgbModule, FormatFormComponent],
providers: [
{ provide: Router, useValue: router },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [
CommonModule,
RouterTestingModule.withRoutes([]),
ReactiveFormsModule,
FormsModule,
TranslateModule.forRoot(),
NgbModule,
FormatFormComponent,
],
providers: [{ provide: Router, useValue: router }],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.overrideComponent(FormatFormComponent, {
remove: {
imports: [FormComponent],
},
})
.compileComponents();
};
const initBeforeEach = () => {

View File

@@ -6,14 +6,12 @@ import {
DynamicFormArrayModel,
DynamicFormControlLayout,
DynamicFormControlModel,
DynamicFormService,
DynamicInputModel,
DynamicSelectModel,
DynamicTextAreaModel
} from '@ng-dynamic-forms/core';
import { Router } from '@angular/router';
import { hasValue, isEmpty } from '../../../../shared/empty.util';
import { TranslateService } from '@ngx-translate/core';
import { getBitstreamFormatsModuleRoute } from '../../admin-registries-routing-paths';
import { environment } from '../../../../../environments/environment';
import { FormComponent } from '../../../../shared/form/form.component';
@@ -129,9 +127,7 @@ export class FormatFormComponent implements OnInit {
}, this.arrayElementLayout),
];
constructor(private dynamicFormService: DynamicFormService,
private translateService: TranslateService,
private router: Router) {
constructor(private router: Router) {
}

View File

@@ -20,6 +20,16 @@ import { MetadataSchema } from '../../../core/metadata/metadata-schema.model';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
import { getMockFormService } from '../../../shared/mocks/form-service.mock';
import { FormService } from '../../../shared/form/form.service';
import { GroupDataService } from '../../../core/eperson/group-data.service';
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service';
import { SearchConfigurationServiceStub } from '../../../shared/testing/search-configuration-service.stub';
import { ConfigurationProperty } from '../../../core/shared/configuration-property.model';
import { FormBuilderService } from 'src/app/shared/form/builder/form-builder.service';
import { MetadataSchemaFormComponent } from './metadata-schema-form/metadata-schema-form.component';
import { RouterLink } from '@angular/router';
describe('MetadataRegistryComponent', () => {
let comp: MetadataRegistryComponent;
@@ -67,19 +77,76 @@ describe('MetadataRegistryComponent', () => {
paginationService = new PaginationServiceStub();
const configurationDataService = jasmine.createSpyObj('configurationDataService', {
findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), {
name: 'test',
values: [
'org.dspace.ctask.general.ProfileFormats = test'
]
}))
});
const formBuilderServiceStub = {
createFormGroup: () => {
return {
patchValue: () => { },
reset(_value?: any, _options?: { onlySelf?: boolean; emitEvent?: boolean; }): void { },
};
}
};
const mockGroupService = jasmine.createSpyObj('groupService',
{
// findByHref: jasmine.createSpy('findByHref'),
// findAll: jasmine.createSpy('findAll'),
// searchGroups: jasmine.createSpy('searchGroups'),
getUUIDFromString: jasmine.createSpy('getUUIDFromString'),
},
{
linkPath: 'groups'
}
);
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, MetadataRegistryComponent, PaginationComponent, EnumKeysPipe],
providers: [
TestBed.configureTestingModule({
imports: [
CommonModule,
RouterTestingModule.withRoutes([]),
TranslateModule.forRoot(),
NgbModule,
MetadataRegistryComponent,
PaginationComponent,
EnumKeysPipe,
],
providers: [
{ provide: RegistryService, useValue: registryServiceStub },
{ provide: HostWindowService, useValue: new HostWindowServiceStub(0) },
{ provide: PaginationService, useValue: paginationService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(MetadataRegistryComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
{
provide: NotificationsService,
useValue: new NotificationsServiceStub(),
},
{ provide: FormService, useValue: getMockFormService() },
{ provide: GroupDataService, useValue: mockGroupService },
{
provide: ConfigurationDataService,
useValue: configurationDataService,
},
{
provide: SearchConfigurationService,
useValue: new SearchConfigurationServiceStub(),
},
{ provide: FormBuilderService, useValue: formBuilderServiceStub },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(MetadataRegistryComponent, {
remove: {
imports: [MetadataSchemaFormComponent, RouterLink]
},
add: { changeDetection: ChangeDetectionStrategy.Default },
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -10,6 +10,7 @@ import { RegistryService } from '../../../../core/registry/registry.service';
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
import { of as observableOf } from 'rxjs';
import { MetadataSchema } from '../../../../core/metadata/metadata-schema.model';
import { FormComponent } from '../../../../shared/form/form.component';
describe('MetadataSchemaFormComponent', () => {
let component: MetadataSchemaFormComponent;
@@ -38,13 +39,19 @@ describe('MetadataSchemaFormComponent', () => {
beforeEach(waitForAsync(() => {
return TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, MetadataSchemaFormComponent, EnumKeysPipe],
providers: [
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, MetadataSchemaFormComponent, EnumKeysPipe],
providers: [
{ provide: RegistryService, useValue: registryServiceStub },
{ provide: FormBuilderService, useValue: formBuilderServiceStub }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(MetadataSchemaFormComponent, {
remove: {
imports: [FormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -25,6 +25,13 @@ import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.u
import { VarDirective } from '../../../shared/utils/var.directive';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
import { MetadataFieldFormComponent } from './metadata-field-form/metadata-field-form.component';
import { GroupDataService } from '../../../core/eperson/group-data.service';
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service';
import { SearchConfigurationServiceStub } from '../../../shared/testing/search-configuration-service.stub';
import { ConfigurationProperty } from '../../../core/shared/configuration-property.model';
import { createPaginatedList } from '../../../shared/testing/utils.test';
describe('MetadataSchemaComponent', () => {
let comp: MetadataSchemaComponent;
@@ -129,19 +136,56 @@ describe('MetadataSchemaComponent', () => {
const paginationService = new PaginationServiceStub();
const configurationDataService = jasmine.createSpyObj('configurationDataService', {
findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), {
name: 'test',
values: [
'org.dspace.ctask.general.ProfileFormats = test'
]
}))
});
const groupDataService = jasmine.createSpyObj('groupsDataService', {
findListByHref: createSuccessfulRemoteDataObject$(createPaginatedList([])),
getGroupRegistryRouterLink: '',
getUUIDFromString: '',
});
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, MetadataSchemaComponent, PaginationComponent, EnumKeysPipe, VarDirective],
providers: [
imports: [
CommonModule,
RouterTestingModule.withRoutes([]),
TranslateModule.forRoot(),
NgbModule,
MetadataSchemaComponent,
PaginationComponent,
EnumKeysPipe,
VarDirective,
],
providers: [
{ provide: RegistryService, useValue: registryServiceStub },
{ provide: ActivatedRoute, useValue: activatedRouteStub },
{ provide: HostWindowService, useValue: new HostWindowServiceStub(0) },
{ provide: Router, useValue: new RouterStub() },
{ provide: PaginationService, useValue: paginationService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{
provide: NotificationsService,
useValue: new NotificationsServiceStub(),
},
{ provide: GroupDataService, useValue: groupDataService },
{ provide: ConfigurationDataService, useValue: configurationDataService },
{ provide: SearchConfigurationService, useValue: new SearchConfigurationServiceStub() },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(MetadataSchemaComponent, {
remove: {
imports: [MetadataFieldFormComponent],
},
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -2,16 +2,26 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { AdminSearchPageComponent } from './admin-search-page.component';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ConfigurationSearchPageComponent } from '../../search-page/configuration-search-page.component';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
describe('AdminSearchPageComponent', () => {
let component: AdminSearchPageComponent;
let fixture: ComponentFixture<AdminSearchPageComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [AdminSearchPageComponent],
schemas: [NO_ERRORS_SCHEMA]
})
beforeEach(waitForAsync(async () => {
await TestBed.configureTestingModule({
imports: [AdminSearchPageComponent],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(AdminSearchPageComponent, {
remove: {
imports: [ConfigurationSearchPageComponent]
}
})
.compileComponents();
}));

View File

@@ -43,14 +43,14 @@ describe('CollectionAdminSearchResultGridElementComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [
imports: [
NoopAnimationsModule,
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
SharedModule,
CollectionAdminSearchResultGridElementComponent
],
providers: [
],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: BitstreamDataService, useValue: {} },
{ provide: LinkService, useValue: linkService },
@@ -58,8 +58,8 @@ describe('CollectionAdminSearchResultGridElementComponent', () => {
{ provide: FileService, useClass: FileServiceStub },
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
{ provide: ThemeService, useValue: getMockThemeService() },
]
})
]
})
.compileComponents();
}));

View File

@@ -2,6 +2,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { AdminWorkflowPageComponent } from './admin-workflow-page.component';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ConfigurationSearchPageComponent } from '../../search-page/configuration-search-page.component';
describe('AdminSearchPageComponent', () => {
let component: AdminWorkflowPageComponent;
@@ -9,9 +10,16 @@ describe('AdminSearchPageComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [AdminWorkflowPageComponent],
schemas: [NO_ERRORS_SCHEMA]
})
imports: [AdminWorkflowPageComponent],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(AdminWorkflowPageComponent, {
remove: {
imports: [
ConfigurationSearchPageComponent
]
}
})
.compileComponents();
}));

View File

@@ -29,6 +29,11 @@ import { getMockLinkService } from '../../../../../shared/mocks/link-service.moc
import { of as observableOf } from 'rxjs';
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
import { WorkflowItemAdminWorkflowActionsComponent } from '../../actions/workflow-item/workflow-item-admin-workflow-actions.component';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataServiceStub } from '../../../../../shared/testing/authorization-service.stub';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
describe('WorkflowItemSearchResultAdminWorkflowGridElementComponent', () => {
let component: WorkflowItemSearchResultAdminWorkflowGridElementComponent;
@@ -70,11 +75,16 @@ describe('WorkflowItemSearchResultAdminWorkflowGridElementComponent', () => {
}
},
{ provide: BitstreamDataService, useValue: {} },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(WorkflowItemSearchResultAdminWorkflowGridElementComponent, {
set: {
remove: {
imports: [WorkflowItemAdminWorkflowActionsComponent]
},
add: {
entryComponents: [ItemGridElementComponent]
}
})

View File

@@ -36,6 +36,11 @@ import {
} from '../../../../../shared/testing/supervision-order.mock';
import { SupervisionOrderDataService } from '../../../../../core/supervision-order/supervision-order-data.service';
import { DSpaceObject } from '../../../../../core/shared/dspace-object.model';
import { NotificationsService } from '../../../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../../../shared/testing/notifications-service.stub';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
describe('WorkspaceItemSearchResultAdminWorkflowGridElementComponent', () => {
let component: WorkspaceItemSearchResultAdminWorkflowGridElementComponent;
@@ -67,25 +72,28 @@ describe('WorkspaceItemSearchResultAdminWorkflowGridElementComponent', () => {
init();
TestBed.configureTestingModule(
{
imports: [
NoopAnimationsModule,
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
WorkspaceItemSearchResultAdminWorkflowGridElementComponent, ItemGridElementComponent, ListableObjectDirective
],
providers: [
{ provide: LinkService, useValue: linkService },
{ provide: ThemeService, useValue: themeService },
{
imports: [
NoopAnimationsModule,
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
WorkspaceItemSearchResultAdminWorkflowGridElementComponent, ItemGridElementComponent, ListableObjectDirective
],
providers: [
{ provide: LinkService, useValue: linkService },
{ provide: ThemeService, useValue: themeService },
{
provide: TruncatableService, useValue: {
isCollapsed: () => observableOf(true),
isCollapsed: () => observableOf(true),
}
},
{ provide: BitstreamDataService, useValue: {} },
{ provide: SupervisionOrderDataService, useValue: supervisionOrderDataService }
],
schemas: [NO_ERRORS_SCHEMA]
})
},
{ provide: BitstreamDataService, useValue: {} },
{ provide: SupervisionOrderDataService, useValue: supervisionOrderDataService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(WorkspaceItemSearchResultAdminWorkflowGridElementComponent, {
set: {
entryComponents: [ItemGridElementComponent]

View File

@@ -24,6 +24,11 @@ import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service
import { DSONameServiceMock } from '../../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
import { environment } from '../../../../../../environments/environment';
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
describe('WorkflowItemSearchResultAdminWorkflowListElementComponent', () => {
let component: WorkflowItemSearchResultAdminWorkflowListElementComponent;
@@ -58,7 +63,10 @@ describe('WorkflowItemSearchResultAdminWorkflowListElementComponent', () => {
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: LinkService, useValue: linkService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environment }
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
})

View File

@@ -31,6 +31,13 @@ import {
supervisionOrderPaginatedListRD$
} from '../../../../../shared/testing/supervision-order.mock';
import { DSpaceObject } from '../../../../../core/shared/dspace-object.model';
import { NotificationsService } from '../../../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../../../shared/testing/notifications-service.stub';
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
describe('WorkspaceItemSearchResultAdminWorkflowListElementComponent', () => {
let component: WorkspaceItemSearchResultAdminWorkflowListElementComponent;
@@ -68,8 +75,12 @@ describe('WorkspaceItemSearchResultAdminWorkflowListElementComponent', () => {
],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: LinkService, useValue: linkService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: AuthorizationDataService, useValue: {} },
{ provide: SupervisionOrderDataService, useValue: supervisionOrderDataService },
{ provide: APP_CONFIG, useValue: environment }
],

View File

@@ -30,6 +30,15 @@ import { PaginationService } from '../../core/pagination/pagination.service';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
import { APP_CONFIG } from '../../../config/app-config.interface';
import { RouteService } from 'src/app/core/services/route.service';
import { routeServiceStub } from 'src/app/shared/testing/route-service.stub';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ThemeService } from 'src/app/shared/theme-support/theme.service';
import { getMockThemeService } from 'src/app/shared/mocks/theme-service.mock';
import { ThemedLoadingComponent } from 'src/app/shared/loading/themed-loading.component';
import { DsoEditMenuComponent } from 'src/app/shared/dso-page/dso-edit-menu/dso-edit-menu.component';
import { SelectableListService } from 'src/app/shared/object-list/selectable-list/selectable-list.service';
import { HostWindowService } from 'src/app/shared/host-window.service';
describe('BrowseByMetadataPageComponent', () => {
let comp: BrowseByMetadataPageComponent;
@@ -102,17 +111,36 @@ describe('BrowseByMetadataPageComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, BrowseByMetadataPageComponent, EnumKeysPipe, VarDirective],
providers: [
imports: [
CommonModule,
RouterTestingModule.withRoutes([]),
TranslateModule.forRoot(),
NgbModule,
BrowseByMetadataPageComponent,
EnumKeysPipe,
VarDirective,
NoopAnimationsModule
],
providers: [
{ provide: ActivatedRoute, useValue: activatedRouteStub },
{ provide: BrowseService, useValue: mockBrowseService },
{ provide: DSpaceObjectDataService, useValue: mockDsoService },
{ provide: PaginationService, useValue: paginationService },
{ provide: Router, useValue: new RouterMock() },
{ provide: APP_CONFIG, useValue: environmentMock }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: APP_CONFIG, useValue: environmentMock },
{ provide: RouteService, useValue: routeServiceStub },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: SelectableListService, useValue: {} },
{ provide: HostWindowService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(BrowseByMetadataPageComponent, {
remove: {
imports: [ThemedLoadingComponent, DsoEditMenuComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -15,6 +15,9 @@ import { NotificationsServiceStub } from '../../shared/testing/notifications-ser
import { RequestService } from '../../core/data/request.service';
import { DSONameService } from '../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../shared/mocks/dso-name.service.mock';
import { AuthService } from '../../core/auth/auth.service';
import { AuthServiceMock } from '../../shared/mocks/auth.service.mock';
import { CollectionFormComponent } from '../collection-form/collection-form.component';
describe('CreateCollectionPageComponent', () => {
let comp: CreateCollectionPageComponent;
@@ -22,21 +25,28 @@ describe('CreateCollectionPageComponent', () => {
beforeEach(waitForAsync(() => {
return TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CreateCollectionPageComponent],
providers: [
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CreateCollectionPageComponent],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: CollectionDataService, useValue: {} },
{
provide: CommunityDataService,
useValue: { findById: () => observableOf({ payload: { name: 'test' } }) }
provide: CommunityDataService,
useValue: { findById: () => observableOf({ payload: { name: 'test' } }) }
},
{ provide: RouteService, useValue: { getQueryParameterValue: () => observableOf('1234') } },
{ provide: Router, useValue: {} },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: RequestService, useValue: {} }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: RequestService, useValue: {} },
{ provide: AuthService, useValue: new AuthServiceMock() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(CreateCollectionPageComponent, {
remove: {
imports: [CollectionFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -15,6 +15,10 @@ import { Collection } from '../../../core/shared/collection.model';
import { RequestService } from '../../../core/data/request.service';
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { getCollectionItemTemplateRoute } from '../../collection-page-routing-paths';
import { AuthServiceMock } from '../../../shared/mocks/auth.service.mock';
import { AuthService } from '../../../core/auth/auth.service';
import { CommunityDataService } from '../../../core/data/community-data.service';
import { ObjectCacheService } from '../../../core/cache/object-cache.service';
describe('CollectionMetadataComponent', () => {
let comp: CollectionMetadataComponent;
@@ -66,7 +70,10 @@ describe('CollectionMetadataComponent', () => {
{ provide: ActivatedRoute, useValue: { parent: { data: observableOf({ dso: createSuccessfulRemoteDataObject(collection) }) } } },
{ provide: NotificationsService, useValue: notificationsService },
{ provide: RequestService, useValue: requestService },
{ provide: Router, useValue: routerMock }
{ provide: Router, useValue: routerMock },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: CommunityDataService, useValue: {} },
{ provide: ObjectCacheService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();

View File

@@ -11,6 +11,10 @@ import { Collection } from '../../core/shared/collection.model';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { getCollectionEditRoute } from '../collection-page-routing-paths';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
describe('EditItemTemplatePageComponent', () => {
let comp: EditItemTemplatePageComponent;
@@ -28,13 +32,15 @@ describe('EditItemTemplatePageComponent', () => {
findByCollectionID: createSuccessfulRemoteDataObject$({})
});
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, EditItemTemplatePageComponent],
providers: [
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, EditItemTemplatePageComponent],
providers: [
{ provide: ItemTemplateDataService, useValue: itemTemplateService },
{ provide: ActivatedRoute, useValue: { parent: { data: observableOf({ dso: createSuccessfulRemoteDataObject(collection) }) } } }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: ActivatedRoute, useValue: { parent: { data: observableOf({ dso: createSuccessfulRemoteDataObject(collection) }) } } },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {

View File

@@ -4,6 +4,9 @@ import { CommunityListPageComponent } from './community-list-page.component';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateLoaderMock } from '../shared/mocks/translate-loader.mock';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ThemeService } from '../shared/theme-support/theme.service';
import { getMockThemeService } from '../shared/mocks/theme-service.mock';
import { CommunityListService } from './community-list-service';
describe('CommunityListPageComponent', () => {
let component: CommunityListPageComponent;
@@ -22,6 +25,8 @@ describe('CommunityListPageComponent', () => {
],
providers: [
CommunityListPageComponent,
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: CommunityListService, useValue: {} },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})

View File

@@ -12,6 +12,9 @@ import { CreateCommunityPageComponent } from './create-community-page.component'
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
import { RequestService } from '../../core/data/request.service';
import { AuthService } from '../../core/auth/auth.service';
import { AuthServiceMock } from '../../shared/mocks/auth.service.mock';
import { CommunityFormComponent } from '../community-form/community-form.component';
describe('CreateCommunityPageComponent', () => {
let comp: CreateCommunityPageComponent;
@@ -19,16 +22,23 @@ describe('CreateCommunityPageComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CreateCommunityPageComponent],
providers: [
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CreateCommunityPageComponent],
providers: [
{ provide: CommunityDataService, useValue: { findById: () => observableOf({}) } },
{ provide: RouteService, useValue: { getQueryParameterValue: () => observableOf('1234') } },
{ provide: Router, useValue: {} },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: RequestService, useValue: {} }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: RequestService, useValue: {} },
{ provide: AuthService, useValue: new AuthServiceMock() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(CreateCommunityPageComponent, {
remove: {
imports: [CommunityFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -10,6 +10,7 @@ import { DSpaceObject } from '../../../core/shared/dspace-object.model';
import { createSuccessfulRemoteDataObject } from '../../../shared/remote-data.utils';
import { CommunityAuthorizationsComponent } from './community-authorizations.component';
import { Collection } from '../../../core/shared/collection.model';
import { ResourcePoliciesComponent } from '../../../shared/resource-policies/resource-policies.component';
describe('CommunityAuthorizationsComponent', () => {
let comp: CommunityAuthorizationsComponent<DSpaceObject>;
@@ -37,17 +38,23 @@ describe('CommunityAuthorizationsComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
CommonModule,
CommunityAuthorizationsComponent
],
providers: [
],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
ChangeDetectorRef,
CommunityAuthorizationsComponent,
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(CommunityAuthorizationsComponent, {
remove: {
imports: [ResourcePoliciesComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -7,6 +7,7 @@ import { ActivatedRoute } from '@angular/router';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
import { CommunityCurateComponent } from './community-curate.component';
import { Community } from '../../../core/shared/community.model';
import { CurationFormComponent } from '../../../curation-form/curation-form.component';
describe('CommunityCurateComponent', () => {
let comp: CommunityCurateComponent;
@@ -34,13 +35,19 @@ describe('CommunityCurateComponent', () => {
});
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), CommunityCurateComponent],
providers: [
imports: [TranslateModule.forRoot(), CommunityCurateComponent],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
{ provide: DSONameService, useValue: dsoNameService }
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(CommunityCurateComponent, {
remove: {
imports: [CurationFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -6,9 +6,9 @@ import { RemoteData } from '../../../core/data/remote-data';
import { Observable } from 'rxjs';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
import { hasValue } from '../../../shared/empty.util';
import { CurationFormComponent } from "../../../curation-form/curation-form.component";
import { TranslateModule } from "@ngx-translate/core";
import { AsyncPipe } from "@angular/common";
import { CurationFormComponent } from '../../../curation-form/curation-form.component';
import { TranslateModule } from '@ngx-translate/core';
import { AsyncPipe } from '@angular/common';
/**
* Component for managing a community's curation tasks

View File

@@ -10,6 +10,7 @@ import { CommunityMetadataComponent } from './community-metadata.component';
import { CommunityDataService } from '../../../core/data/community-data.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub';
import { CommunityFormComponent } from '../../community-form/community-form.component';
describe('CommunityMetadataComponent', () => {
let comp: CommunityMetadataComponent;
@@ -17,14 +18,20 @@ describe('CommunityMetadataComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CommunityMetadataComponent],
providers: [
imports: [TranslateModule.forRoot(), SharedModule, CommonModule, RouterTestingModule, CommunityMetadataComponent],
providers: [
{ provide: CommunityDataService, useValue: {} },
{ provide: ActivatedRoute, useValue: { parent: { data: observableOf({ dso: { payload: {} } }) } } },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(CommunityMetadataComponent, {
remove: {
imports: [CommunityFormComponent],
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -16,7 +16,7 @@ import { getMockRemoteDataBuildService } from '../../shared/mocks/remote-data-bu
import { CoreState } from '../core-state.model';
import { RequestEntry } from './request-entry.model';
import { FindListOptions } from './find-list-options.model';
import { HALEndpointServiceStub } from 'src/app/shared/testing/hal-endpoint-service.stub';
import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service.stub';
import { testCreateDataImplementation } from './base/create-data.spec';
import { testPatchDataImplementation } from './base/patch-data.spec';
import { testDeleteDataImplementation } from './base/delete-data.spec';

View File

@@ -8,9 +8,16 @@ import { RelationshipDataService } from '../../../core/data/relationship-data.se
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
import { of } from 'rxjs/internal/observable/of';
import { ItemMetadataRepresentation } from '../../../core/shared/metadata-representation/item/item-metadata-representation.model';
import { MetadataValue, VIRTUAL_METADATA_PREFIX } from '../../../core/shared/metadata.models';
import { DsoEditMetadataChangeType, DsoEditMetadataValue } from '../dso-edit-metadata-form';
import {
MetadataValue,
VIRTUAL_METADATA_PREFIX,
} from '../../../core/shared/metadata.models';
import {
DsoEditMetadataChangeType,
DsoEditMetadataValue,
} from '../dso-edit-metadata-form';
import { By } from '@angular/platform-browser';
import { ThemedTypeBadgeComponent } from '../../../shared/object-collection/shared/badges/type-badge/themed-type-badge.component';
const EDIT_BTN = 'edit';
const CONFIRM_BTN = 'confirm';
@@ -30,14 +37,16 @@ describe('DsoEditMetadataValueComponent', () => {
function initServices(): void {
relationshipService = jasmine.createSpyObj('relationshipService', {
resolveMetadataRepresentation: of(new ItemMetadataRepresentation(metadataValue)),
resolveMetadataRepresentation: of(
new ItemMetadataRepresentation(metadataValue)
),
});
dsoNameService = jasmine.createSpyObj('dsoNameService', {
getName: 'Related Name',
});
}
beforeEach(waitForAsync(() => {
beforeEach(waitForAsync(async () => {
metadataValue = Object.assign(new MetadataValue(), {
value: 'Regular Name',
language: 'en',
@@ -48,14 +57,25 @@ describe('DsoEditMetadataValueComponent', () => {
initServices();
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), DsoEditMetadataValueComponent, VarDirective],
providers: [
await TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
DsoEditMetadataValueComponent,
VarDirective,
],
providers: [
{ provide: RelationshipDataService, useValue: relationshipService },
{ provide: DSONameService, useValue: dsoNameService },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(DsoEditMetadataValueComponent, {
remove: {
imports: [ThemedTypeBadgeComponent],
},
})
.compileComponents();
}));
beforeEach(() => {
@@ -67,7 +87,9 @@ describe('DsoEditMetadataValueComponent', () => {
});
it('should not show a badge', () => {
expect(fixture.debugElement.query(By.css('ds-themed-type-badge'))).toBeNull();
expect(
fixture.debugElement.query(By.css('ds-themed-type-badge'))
).toBeNull();
});
describe('when no changes have been made', () => {
@@ -133,7 +155,9 @@ describe('DsoEditMetadataValueComponent', () => {
});
it('should show a badge', () => {
expect(fixture.debugElement.query(By.css('ds-themed-type-badge'))).toBeTruthy();
expect(
fixture.debugElement.query(By.css('ds-themed-type-badge'))
).toBeTruthy();
});
assertButton(EDIT_BTN, true, true);
@@ -143,7 +167,11 @@ describe('DsoEditMetadataValueComponent', () => {
assertButton(DRAG_BTN, true, false);
});
function assertButton(name: string, exists: boolean, disabled: boolean = false): void {
function assertButton(
name: string,
exists: boolean,
disabled: boolean = false
): void {
describe(`${name} button`, () => {
let btn: DebugElement;

View File

@@ -3,7 +3,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { VarDirective } from '../../shared/utils/var.directive';
import { TranslateModule } from '@ngx-translate/core';
import { RouterTestingModule } from '@angular/router/testing';
import { DebugElement, Injectable, NO_ERRORS_SCHEMA } from '@angular/core';
import { ChangeDetectionStrategy, DebugElement, Injectable, NO_ERRORS_SCHEMA } from '@angular/core';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { Item } from '../../core/shared/item.model';
import { MetadataValue } from '../../core/shared/metadata.models';
@@ -16,6 +16,13 @@ import { DATA_SERVICE_FACTORY } from '../../core/data/base/data-service.decorato
import { Operation } from 'fast-json-patch';
import { RemoteData } from '../../core/data/remote-data';
import { Observable } from 'rxjs/internal/Observable';
import { DsoEditMetadataValueComponent } from './dso-edit-metadata-value/dso-edit-metadata-value.component';
import { DsoEditMetadataHeadersComponent } from './dso-edit-metadata-headers/dso-edit-metadata-headers.component';
import { MetadataFieldSelectorComponent } from './metadata-field-selector/metadata-field-selector.component';
import { DsoEditMetadataValueHeadersComponent } from './dso-edit-metadata-value-headers/dso-edit-metadata-value-headers.component';
import { DsoEditMetadataFieldValuesComponent } from './dso-edit-metadata-field-values/dso-edit-metadata-field-values.component';
import { AlertComponent } from '../../shared/alert/alert.component';
import { LoadingComponent } from '../../shared/loading/loading.component';
const ADD_BTN = 'add';
const REINSTATE_BTN = 'reinstate';
@@ -68,18 +75,48 @@ describe('DsoEditMetadataComponent', () => {
},
});
notificationsService = jasmine.createSpyObj('notificationsService', ['error', 'success']);
notificationsService = jasmine.createSpyObj('notificationsService', [
'error',
'success',
]);
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), DsoEditMetadataComponent, VarDirective],
providers: [
imports: [
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
DsoEditMetadataComponent,
VarDirective,
],
providers: [
TestDataService,
{ provide: DATA_SERVICE_FACTORY, useValue: jasmine.createSpy('getDataServiceFor').and.returnValue(TestDataService) },
{
provide: DATA_SERVICE_FACTORY,
useValue: jasmine
.createSpy('getDataServiceFor')
.and.returnValue(TestDataService),
},
{ provide: NotificationsService, useValue: notificationsService },
ArrayMoveChangeAnalyzer,
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(DsoEditMetadataComponent, {
remove: {
imports: [
DsoEditMetadataValueComponent,
DsoEditMetadataHeadersComponent,
MetadataFieldSelectorComponent,
DsoEditMetadataValueHeadersComponent,
DsoEditMetadataFieldValuesComponent,
AlertComponent,
LoadingComponent,
],
},
add: {
changeDetection: ChangeDetectionStrategy.Default,
},
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -12,6 +12,15 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { BitstreamDataService } from '../../../../core/data/bitstream-data.service';
import { TranslateModule } from '@ngx-translate/core';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -43,17 +52,24 @@ describe('JournalVolumeGridElementComponent', () => {
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
expand: (id: number) => null,
collapse: (id: number) => null
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, JournalVolumeGridElementComponent, TruncatePipe],
providers: [
imports: [NoopAnimationsModule, JournalVolumeGridElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalVolumeGridElementComponent, {
{ provide: BitstreamDataService, useValue: {} },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalVolumeGridElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -12,6 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { JournalSearchResultGridElementComponent } from '../search-result-grid-elements/journal/journal-search-result-grid-element.component';
const mockItem = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -53,14 +54,17 @@ describe('JournalGridElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, JournalGridElementComponent, TruncatePipe],
providers: [
imports: [NoopAnimationsModule, JournalGridElementComponent, TruncatePipe],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalGridElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalGridElementComponent, {
remove: {
imports: [JournalSearchResultGridElementComponent]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -8,6 +8,17 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from '../../../../../config/app-config.interface';
import { environment } from '../../../../../environments/environment.test';
import { TranslateModule } from '@ngx-translate/core';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: observableOf({}),
@@ -37,19 +48,20 @@ describe('JournalIssueListElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [JournalIssueListElementComponent, TruncatePipe],
providers: [
imports: [JournalIssueListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalIssueListElementComponent, {
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalIssueListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -8,6 +8,16 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from 'src/config/app-config.interface';
import { environment } from 'src/environments/environment.test';
import { TranslateModule } from '@ngx-translate/core';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: observableOf({}),
@@ -33,14 +43,21 @@ describe('JournalListElementComponent', () => {
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
collapse: (id: number) => null,
expand: (id: number) => null
};
beforeEach(waitForAsync(() => {
return TestBed.configureTestingModule({
imports: [JournalListElementComponent, TruncatePipe],
imports: [JournalListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalListElementComponent, {

View File

@@ -183,12 +183,13 @@ describe('JournalIssueSearchResultListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [JournalIssueSearchResultListElementComponent, TruncatePipe],
imports: [JournalIssueSearchResultListElementComponent, TruncatePipe, TranslateModule.forRoot(),],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: enviromentNoThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalIssueSearchResultListElementComponent, {

View File

@@ -21,6 +21,7 @@ import {
} from '../../../../../shared/truncatable/truncatable-part/truncatable-part.component';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
import { TranslateModule } from '@ngx-translate/core';
let journalListElementComponent: JournalSearchResultListElementComponent;
let fixture: ComponentFixture<JournalSearchResultListElementComponent>;
@@ -79,13 +80,13 @@ const enviromentNoThumbs = {
describe('JournalSearchResultListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [JournalSearchResultListElementComponent, TruncatePipe],
imports: [JournalSearchResultListElementComponent, TruncatePipe, TranslateModule.forRoot(),],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() }
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalSearchResultListElementComponent, {
@@ -149,12 +150,13 @@ describe('JournalSearchResultListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [JournalSearchResultListElementComponent, TruncatePipe],
imports: [JournalSearchResultListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: enviromentNoThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(JournalSearchResultListElementComponent, {

View File

@@ -1,5 +1,4 @@
import { Item } from '../../../../core/shared/item.model';
import { of as observableOf } from 'rxjs';
import { OrgUnitGridElementComponent } from './org-unit-grid-element.component';
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
import { buildPaginatedList } from '../../../../core/data/paginated-list.model';
@@ -12,6 +11,16 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { BitstreamDataService } from '../../../../core/data/bitstream-data.service';
import { TranslateModule } from '@ngx-translate/core';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -47,19 +56,25 @@ describe('OrgUnitGridElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, OrgUnitGridElementComponent, TruncatePipe],
providers: [
imports: [
NoopAnimationsModule,
OrgUnitGridElementComponent,
TruncatePipe,
TranslateModule.forRoot()
],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(OrgUnitGridElementComponent, {
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: BitstreamDataService, useValue: {} },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(OrgUnitGridElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -12,6 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { PersonSearchResultGridElementComponent } from '../search-result-grid-elements/person/person-search-result-grid-element.component';
const mockItem = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -47,14 +48,17 @@ describe('PersonGridElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, PersonGridElementComponent, TruncatePipe],
providers: [
imports: [NoopAnimationsModule, PersonGridElementComponent, TruncatePipe],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonGridElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonGridElementComponent, {
remove: {
imports: [PersonSearchResultGridElementComponent]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -1,5 +1,4 @@
import { Item } from '../../../../core/shared/item.model';
import { of as observableOf } from 'rxjs';
import { ProjectGridElementComponent } from './project-grid-element.component';
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
import { buildPaginatedList } from '../../../../core/data/paginated-list.model';
@@ -12,6 +11,16 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { BitstreamDataService } from '../../../../core/data/bitstream-data.service';
import { TranslateModule } from '@ngx-translate/core';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -35,16 +44,17 @@ describe('ProjectGridElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, ProjectGridElementComponent, TruncatePipe],
imports: [NoopAnimationsModule, ProjectGridElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: BitstreamDataService, useValue: {} },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectGridElementComponent, {

View File

@@ -8,6 +8,17 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from '../../../../../config/app-config.interface';
import { environment } from '../../../../../environments/environment.test';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { TranslateModule } from '@ngx-translate/core';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: observableOf({}),
@@ -31,16 +42,18 @@ describe('OrgUnitListElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [OrgUnitListElementComponent, TruncatePipe],
imports: [OrgUnitListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(OrgUnitListElementComponent, {

View File

@@ -8,6 +8,17 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from 'src/config/app-config.interface';
import { environment } from 'src/environments/environment.test';
import { TranslateModule } from '@ngx-translate/core';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: observableOf({}),
@@ -31,16 +42,17 @@ describe('PersonListElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [PersonListElementComponent, TruncatePipe],
imports: [PersonListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonListElementComponent, {

View File

@@ -8,6 +8,17 @@ import { TruncatableService } from '../../../../shared/truncatable/truncatable.s
import { ProjectListElementComponent } from './project-list-element.component';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { APP_CONFIG } from '../../../../../config/app-config.interface';
import { environment } from '../../../../../environments/environment.test';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
import { AuthServiceMock } from '../../../../shared/mocks/auth.service.mock';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../shared/testing/active-router.stub';
import { TranslateModule } from '@ngx-translate/core';
const mockItem: Item = Object.assign(new Item(), {
bundles: observableOf({}),
@@ -18,12 +29,6 @@ const mockItem: Item = Object.assign(new Item(), {
value: 'This is just another title'
}
],
// 'project.identifier.status': [
// {
// language: 'en_US',
// value: 'A status about the project'
// }
// ]
}
});
@@ -31,19 +36,20 @@ describe('ProjectListElementComponent', () => {
let comp;
let fixture;
const truncatableServiceStub: any = {
isCollapsed: (id: number) => observableOf(true),
};
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ProjectListElementComponent, TruncatePipe],
providers: [
imports: [ProjectListElementComponent, TruncatePipe, TranslateModule.forRoot()],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: TruncatableService, useValue: truncatableServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectListElementComponent, {
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -23,6 +23,9 @@ import {
} from '../../../../../shared/truncatable/truncatable-part/truncatable-part.component';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
import { ActivatedRoute } from '@angular/router';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
let orgUnitListElementComponent: OrgUnitSearchResultListElementComponent;
let fixture: ComponentFixture<OrgUnitSearchResultListElementComponent>;
@@ -87,6 +90,9 @@ describe('OrgUnitSearchResultListElementComponent', () => {
}), OrgUnitSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }

View File

@@ -14,6 +14,12 @@ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateLoaderMock } from '../../../../../shared/mocks/translate-loader.mock';
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
import { mockTruncatableService } from '../../../../../shared/mocks/mock-trucatable.service';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
import { AuthService } from '../../../../../core/auth/auth.service';
import { AuthServiceMock } from '../../../../../shared/mocks/auth.service.mock';
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
let personListElementComponent: PersonSearchResultListElementComponent;
let fixture: ComponentFixture<PersonSearchResultListElementComponent>;
@@ -70,20 +76,23 @@ const enviromentNoThumbs = {
describe('PersonSearchResultListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), PersonSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: {} },
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), PersonSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListElementComponent, {
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
@@ -138,21 +147,24 @@ describe('PersonSearchResultListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), PersonSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: {} },
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), PersonSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: enviromentNoThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListElementComponent, {
set: {changeDetection: ChangeDetectionStrategy.Default}
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: AuthService, useValue: new AuthServiceMock() },
{ provide: AuthorizationDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -77,11 +77,11 @@ describe('ProjectSearchResultListElementComponent', () => {
TestBed.configureTestingModule({
imports: [ProjectSearchResultListElementComponent, TruncatePipe],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectSearchResultListElementComponent, {
@@ -149,7 +149,8 @@ describe('ProjectSearchResultListElementComponent', () => {
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: enviromentNoThumbs },
{ provide: ThemeService, useValue: getMockThemeService() }
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectSearchResultListElementComponent, {

View File

@@ -8,6 +8,8 @@ import { ItemMetadataRepresentation } from '../../../../core/shared/metadata-rep
import { OrgUnitItemMetadataListElementComponent } from './org-unit-item-metadata-list-element.component';
import { Item } from '../../../../core/shared/item.model';
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component';
import { RouterLink } from '@angular/router';
const description = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.';
const organisation = 'Anonymous';
@@ -21,13 +23,16 @@ describe('OrgUnitItemMetadataListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
NgbModule,
OrgUnitItemMetadataListElementComponent
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(OrgUnitItemMetadataListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(OrgUnitItemMetadataListElementComponent, {
remove: {
imports: [TruncatableComponent, RouterLink]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -8,6 +8,8 @@ import { ItemMetadataRepresentation } from '../../../../core/shared/metadata-rep
import { Item } from '../../../../core/shared/item.model';
import { PersonItemMetadataListElementComponent } from './person-item-metadata-list-element.component';
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component';
import { RouterLink } from '@angular/router';
const jobTitle = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.';
const firstName = 'Joe';
@@ -23,13 +25,16 @@ describe('PersonItemMetadataListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
NgbModule,
PersonItemMetadataListElementComponent
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonItemMetadataListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonItemMetadataListElementComponent, {
remove: {
imports: [TruncatableComponent, RouterLink]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -10,6 +10,8 @@ import { ProjectItemMetadataListElementComponent } from './project-item-metadata
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mock';
import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component';
import { RouterLink } from '@angular/router';
const projectTitle = 'Lorem ipsum dolor sit amet';
const mockItem = Object.assign(new Item(), { metadata: { 'dc.title': [{ value: projectTitle }] } });
@@ -23,16 +25,19 @@ describe('ProjectItemMetadataListElementComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
NgbModule,
ProjectItemMetadataListElementComponent
],
providers: [
],
providers: [
{ provide: DSONameService, useValue: new DSONameServiceMock() }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectItemMetadataListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ProjectItemMetadataListElementComponent, {
remove: {
imports: [TruncatableComponent, RouterLink,]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -1,5 +1,5 @@
import { HttpClient } from '@angular/common/http';
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { ChangeDetectionStrategy, Component, EventEmitter, NO_ERRORS_SCHEMA } from '@angular/core';
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
@@ -8,7 +8,6 @@ import { TranslateService } from '@ngx-translate/core';
import { Observable, of as observableOf } from 'rxjs';
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../../../../core/cache/object-cache.service';
import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service';
import { CommunityDataService } from '../../../../../core/data/community-data.service';
import { DefaultChangeAnalyzer } from '../../../../../core/data/default-change-analyzer.service';
import { DSOChangeAnalyzer } from '../../../../../core/data/dso-change-analyzer.service';
@@ -20,7 +19,6 @@ import { Bitstream } from '../../../../../core/shared/bitstream.model';
import { HALEndpointService } from '../../../../../core/shared/hal-endpoint.service';
import { Item } from '../../../../../core/shared/item.model';
import { UUIDService } from '../../../../../core/shared/uuid.service';
import { NotificationsService } from '../../../../../shared/notifications/notifications.service';
import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model';
import { SelectableListService } from '../../../../../shared/object-list/selectable-list/selectable-list.service';
import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/remote-data.utils';
@@ -28,6 +26,14 @@ import { TruncatableService } from '../../../../../shared/truncatable/truncatabl
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
import { PersonSearchResultListSubmissionElementComponent } from './person-search-result-list-submission-element.component';
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
import { ThumbnailComponent } from '../../../../../thumbnail/thumbnail.component';
import { PersonInputSuggestionsComponent } from './person-suggestions/person-input-suggestions.component';
import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type';
import { AuthService } from '../../../../../core/auth/auth.service';
import { REQUEST } from '@nguniversal/express-engine/tokens';
import { BrowseByRoutingModule } from '../../../../../browse-by/browse-by-routing.module';
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
let personListElementComponent: PersonSearchResultListSubmissionElementComponent;
let fixture: ComponentFixture<PersonSearchResultListSubmissionElementComponent>;
@@ -50,6 +56,14 @@ const enviromentNoThumbs = {
}
};
const translateServiceStub = {
get: () => observableOf('test' ),
instant: (key) => key,
onLangChange: new EventEmitter(),
onTranslationChange: new EventEmitter(),
onDefaultLangChange: new EventEmitter()
};
function init() {
mockItemWithMetadata = Object.assign(
new ItemSearchResult(),
@@ -95,20 +109,14 @@ function init() {
}
describe('PersonSearchResultListElementSubmissionComponent', () => {
const mockBitstreamDataService = {
getThumbnailFor(item: Item): Observable<RemoteData<Bitstream>> {
return createSuccessfulRemoteDataObject$(new Bitstream());
}
};
beforeEach(waitForAsync(() => {
beforeEach(waitForAsync(async () => {
init();
TestBed.configureTestingModule({
imports: [PersonSearchResultListSubmissionElementComponent, TruncatePipe],
providers: [
await TestBed.configureTestingModule({
imports: [PersonSearchResultListSubmissionElementComponent, TruncatePipe, BrowseByRoutingModule],
providers: [
{ provide: TruncatableService, useValue: {} },
{ provide: RelationshipDataService, useValue: mockRelationshipService },
{ provide: NotificationsService, useValue: {} },
{ provide: TranslateService, useValue: {} },
{ provide: TranslateService, useValue: translateServiceStub },
{ provide: NgbModal, useValue: {} },
{ provide: ItemDataService, useValue: {} },
{ provide: SelectableListService, useValue: {} },
@@ -121,13 +129,14 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: APP_CONFIG, useValue: environmentUseThumbs }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListSubmissionElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
{ provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: AuthService, useValue: {} },
{ provide: REQUEST, useValue: {} },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(waitForAsync(() => {
@@ -139,6 +148,25 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
describe('When the item has a job title', () => {
beforeEach(() => {
personListElementComponent.object = mockItemWithMetadata;
personListElementComponent.dso = Object.assign(
new Item(),
{
metadata: {
'dc.title': [
{
language: 'en_US',
value: 'This is just another title'
}
],
'person.jobTitle': [
{
language: 'en_US',
value: 'Developer'
}
]
}
});
fixture.detectChanges();
});
@@ -163,6 +191,7 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
describe('When the environment is set to show thumbnails', () => {
beforeEach(() => {
personListElementComponent.object = mockItemWithoutMetadata;
personListElementComponent.linkType = CollectionElementLinkType.ExternalLink;
fixture.detectChanges();
});
@@ -182,12 +211,11 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [PersonSearchResultListSubmissionElementComponent, TruncatePipe],
providers: [
imports: [PersonSearchResultListSubmissionElementComponent, TruncatePipe],
providers: [
{ provide: TruncatableService, useValue: {} },
{ provide: RelationshipDataService, useValue: mockRelationshipService },
{ provide: NotificationsService, useValue: {} },
{ provide: TranslateService, useValue: {} },
{ provide: TranslateService, useValue: translateServiceStub },
{ provide: NgbModal, useValue: {} },
{ provide: ItemDataService, useValue: {} },
{ provide: SelectableListService, useValue: {} },
@@ -200,12 +228,14 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: APP_CONFIG, useValue: enviromentNoThumbs }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListSubmissionElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PersonSearchResultListSubmissionElementComponent, {
remove: {
imports: [ThumbnailComponent, PersonInputSuggestionsComponent]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
@@ -227,3 +257,12 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
});
});
});
@Component({
selector: 'ds-mock-thumbnail',
template: '<div></div>',
standalone: true
})
export class ThumbnailStubComponent {
}

View File

@@ -1,5 +1,4 @@
import { Component, Inject, OnInit } from '@angular/core';
import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service';
import { SearchResultListElementComponent } from '../../../../../shared/object-list/search-result-list-element/search-result-list-element.component';
import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model';
import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator';
@@ -9,8 +8,6 @@ import { Context } from '../../../../../core/shared/context.model';
import { RelationshipDataService } from '../../../../../core/data/relationship-data.service';
import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service';
import { take } from 'rxjs/operators';
import { NotificationsService } from '../../../../../shared/notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { NameVariantModalComponent } from '../../name-variant-modal/name-variant-modal.component';
import { MetadataValue } from '../../../../../core/shared/metadata.models';
@@ -47,11 +44,8 @@ export class PersonSearchResultListSubmissionElementComponent extends SearchResu
constructor(protected truncatableService: TruncatableService,
private relationshipService: RelationshipDataService,
private notificationsService: NotificationsService,
private translateService: TranslateService,
private modalService: NgbModal,
private itemDataService: ItemDataService,
private bitstreamDataService: BitstreamDataService,
private selectableListService: SelectableListService,
public dsoNameService: DSONameService,
@Inject(APP_CONFIG) protected appConfig: AppConfig

View File

@@ -4,6 +4,7 @@ import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ReactiveFormsModule } from '@angular/forms';
import { RegisterEmailFormComponent } from '../../register-email-form/register-email-form.component';
describe('ForgotEmailComponent', () => {
let comp: ForgotEmailComponent;
@@ -11,9 +12,15 @@ describe('ForgotEmailComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CommonModule, TranslateModule.forRoot(), ReactiveFormsModule, ForgotEmailComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [CommonModule, TranslateModule.forRoot(), ReactiveFormsModule, ForgotEmailComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(ForgotEmailComponent, {
remove: {
imports: [RegisterEmailFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ForgotEmailComponent);

View File

@@ -17,20 +17,20 @@ describe('HealthInfoComponentComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
imports: [
CommonModule,
NgbCollapseModule,
NoopAnimationsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
HealthInfoComponentComponent,
ObjNgFor
]
})
ObjNgFor,
]
})
.compileComponents();
});

View File

@@ -11,6 +11,8 @@ import { TranslateLoaderMock } from '../../shared/mocks/translate-loader.mock';
import { HealthPanelComponent } from './health-panel.component';
import { HealthResponseObj } from '../../shared/mocks/health-endpoint.mocks';
import { ObjNgFor } from '../../shared/utils/object-ngfor.pipe';
import { HealthStatusComponent } from './health-status/health-status.component';
import { HealthComponentComponent } from './health-component/health-component.component';
describe('HealthPanelComponent', () => {
let component: HealthPanelComponent;
@@ -33,7 +35,13 @@ describe('HealthPanelComponent', () => {
ObjNgFor
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
})
.overrideComponent(HealthPanelComponent, {
remove: {
imports: [HealthComponentComponent, HealthStatusComponent]
}
})
.compileComponents();
});
beforeEach(() => {

View File

@@ -1,8 +1,8 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { SearchService } from 'src/app/core/shared/search/search.service';
import { createSuccessfulRemoteDataObject } from 'src/app/shared/remote-data.utils';
import { SearchServiceStub } from 'src/app/shared/testing/search-service.stub';
import { createPaginatedList } from 'src/app/shared/testing/utils.test';
import { SearchService } from '../../core/shared/search/search.service';
import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils';
import { SearchServiceStub } from '../../shared/testing/search-service.stub';
import { createPaginatedList } from '../../shared/testing/utils.test';
import { PaginationService } from '../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
import { RecentItemListComponent } from './recent-item-list.component';

View File

@@ -5,6 +5,7 @@ import { ThemeService } from '../shared/theme-support/theme.service';
import { getMockThemeService } from '../shared/mocks/theme-service.mock';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../shared/testing/active-router.stub';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
describe('ImportExternalPageComponent', () => {
let component: ImportExternalPageComponent;
@@ -15,7 +16,8 @@ describe('ImportExternalPageComponent', () => {
imports: [ImportExternalPageComponent],
providers: [
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() }
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: SearchConfigurationService, useValue: {}},
],
schemas: [NO_ERRORS_SCHEMA]
})

View File

@@ -2,6 +2,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { EndUserAgreementContentComponent } from './end-user-agreement-content.component';
import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { RouterLink } from '@angular/router';
describe('EndUserAgreementContentComponent', () => {
let component: EndUserAgreementContentComponent;
@@ -9,9 +10,15 @@ describe('EndUserAgreementContentComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), EndUserAgreementContentComponent],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
imports: [TranslateModule.forRoot(), EndUserAgreementContentComponent],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(EndUserAgreementContentComponent, {
remove: {
imports: [RouterLink]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -11,6 +11,7 @@ import { Store } from '@ngrx/store';
import { By } from '@angular/platform-browser';
import { LogOutAction } from '../../core/auth/auth.actions';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { EndUserAgreementContentComponent } from './end-user-agreement-content/end-user-agreement-content.component';
describe('EndUserAgreementComponent', () => {
let component: EndUserAgreementComponent;
@@ -48,17 +49,23 @@ describe('EndUserAgreementComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), EndUserAgreementComponent],
providers: [
imports: [TranslateModule.forRoot(), EndUserAgreementComponent],
providers: [
{ provide: EndUserAgreementService, useValue: endUserAgreementService },
{ provide: NotificationsService, useValue: notificationsService },
{ provide: AuthService, useValue: authService },
{ provide: Store, useValue: store },
{ provide: Router, useValue: router },
{ provide: ActivatedRoute, useValue: route }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(EndUserAgreementComponent, {
remove: {
imports: [EndUserAgreementContentComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -2,6 +2,11 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { FeedbackComponent } from './feedback.component';
import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { ThemedFeedbackFormComponent } from './feedback-form/themed-feedback-form.component';
describe('FeedbackComponent', () => {
let component: FeedbackComponent;
@@ -9,9 +14,19 @@ describe('FeedbackComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), FeedbackComponent],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
imports: [TranslateModule.forRoot(), FeedbackComponent],
providers: [
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(FeedbackComponent, {
remove: {
imports: [ThemedFeedbackFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -2,6 +2,8 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { PrivacyComponent } from './privacy.component';
import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
describe('PrivacyComponent', () => {
let component: PrivacyComponent;
@@ -10,6 +12,9 @@ describe('PrivacyComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), PrivacyComponent],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));

View File

@@ -4,6 +4,9 @@ import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Item } from '../../core/shared/item.model';
import { By } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
describe('ItemAlertsComponent', () => {
let component: ItemAlertsComponent;
@@ -12,7 +15,10 @@ describe('ItemAlertsComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), ItemAlertsComponent],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
imports: [TranslateModule.forRoot(), ItemAlertsComponent, NoopAnimationsModule],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();

View File

@@ -24,6 +24,8 @@ import { AuthServiceStub } from '../../../shared/testing/auth-service.stub';
import { environment } from '../../../../environments/environment';
import { buildPaginatedList } from '../../../core/data/paginated-list.model';
import { PageInfo } from '../../../core/shared/page-info.model';
import { UploaderComponent } from '../../../shared/upload/uploader/uploader.component';
import { DsoInputSuggestionsComponent } from '../../../shared/input-suggestions/dso-input-suggestions/dso-input-suggestions.component';
describe('UploadBitstreamComponent', () => {
let comp: UploadBitstreamComponent;
@@ -287,8 +289,8 @@ describe('UploadBitstreamComponent', () => {
};
TestBed.configureTestingModule({
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, UploadBitstreamComponent, VarDirective],
providers: [
imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, UploadBitstreamComponent, VarDirective],
providers: [
{ provide: ActivatedRoute, useValue: routeStub },
{ provide: Router, useValue: routerStub },
{ provide: ItemDataService, useValue: mockItemDataService },
@@ -296,10 +298,16 @@ describe('UploadBitstreamComponent', () => {
{ provide: AuthService, useValue: authServiceStub },
{ provide: BundleDataService, useValue: bundleService },
{ provide: RequestService, useValue: requestService }
], schemas: [
], schemas: [
NO_ERRORS_SCHEMA
]
}).compileComponents();
]
})
.overrideComponent(UploadBitstreamComponent, {
remove: {
imports: [UploaderComponent, DsoInputSuggestionsComponent]
}
})
.compileComponents();
}
/**

View File

@@ -18,6 +18,9 @@ import { createPaginatedList } from '../../../../../shared/testing/utils.test';
import { RequestService } from '../../../../../core/data/request.service';
import { PaginationService } from '../../../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../../../../shared/testing/pagination-service.stub';
import { PaginationComponent } from '../../../../../shared/pagination/pagination.component';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
describe('PaginatedDragAndDropBitstreamListComponent', () => {
let comp: PaginatedDragAndDropBitstreamListComponent;
@@ -115,17 +118,24 @@ describe('PaginatedDragAndDropBitstreamListComponent', () => {
paginationService = new PaginationServiceStub();
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), PaginatedDragAndDropBitstreamListComponent, VarDirective],
providers: [
imports: [TranslateModule.forRoot(), PaginatedDragAndDropBitstreamListComponent, VarDirective],
providers: [
{ provide: ObjectUpdatesService, useValue: objectUpdatesService },
{ provide: BundleDataService, useValue: bundleService },
{ provide: ObjectValuesPipe, useValue: objectValuesPipe },
{ provide: RequestService, useValue: requestService },
{ provide: PaginationService, useValue: paginationService }
], schemas: [
{ provide: PaginationService, useValue: paginationService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
], schemas: [
NO_ERRORS_SCHEMA
]
}).compileComponents();
]
})
.overrideComponent(PaginatedDragAndDropBitstreamListComponent, {
remove: {
imports: [PaginationComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -7,6 +7,7 @@ import { createSuccessfulRemoteDataObject } from '../../../shared/remote-data.ut
import { ActivatedRoute } from '@angular/router';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
import { Item } from '../../../core/shared/item.model';
import { CurationFormComponent } from '../../../curation-form/curation-form.component';
describe('ItemCurateComponent', () => {
let comp: ItemCurateComponent;
@@ -41,7 +42,13 @@ describe('ItemCurateComponent', () => {
{ provide: DSONameService, useValue: dsoNameService }
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
})
.overrideComponent(ItemCurateComponent, {
remove: {
imports: [CurationFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -23,6 +23,7 @@ import {
import { createPaginatedList } from '../../../shared/testing/utils.test';
import { RequestService } from '../../../core/data/request.service';
import { getMockRequestService } from '../../../shared/mocks/request.service.mock';
import { AuthorizedCollectionSelectorComponent } from '../../../shared/dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component';
describe('ItemMoveComponent', () => {
let comp: ItemMoveComponent;
@@ -103,7 +104,13 @@ describe('ItemMoveComponent', () => {
], schemas: [
CUSTOM_ELEMENTS_SCHEMA
]
}).compileComponents();
})
.overrideComponent(ItemMoveComponent, {
remove: {
imports: [AuthorizedCollectionSelectorComponent]
}
})
.compileComponents();
fixture = TestBed.createComponent(ItemMoveComponent);
comp = fixture.componentInstance;
fixture.detectChanges();

View File

@@ -30,7 +30,7 @@ import { getItemEditRoute } from '../../item-page-routing-paths';
selector: 'ds-simple-action',
templateUrl: './abstract-simple-item-action.component.html',
standalone: true,
imports: [CommonModule, FormsModule, NgbModule]
imports: [CommonModule, FormsModule, NgbModule, TranslateModule],
})
export class MySimpleItemActionComponent extends AbstractSimpleItemActionComponent {

View File

@@ -9,6 +9,9 @@ import { ObjectUpdatesService } from '../../../core/data/object-updates/object-u
import { VarDirective } from '../../../shared/utils/var.directive';
import { APP_CONFIG } from '../../../../config/app-config.interface';
import { environment } from '../../../../environments/environment';
import { ThemeService } from '../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
import { ListableObjectComponentLoaderComponent } from '../../../shared/object-collection/shared/listable-object/listable-object-component-loader.component';
describe('VirtualMetadataComponent', () => {
@@ -44,14 +47,21 @@ describe('VirtualMetadataComponent', () => {
});
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), VirtualMetadataComponent, VarDirective],
providers: [
imports: [TranslateModule.forRoot(), VirtualMetadataComponent, VarDirective],
providers: [
{ provide: ObjectUpdatesService, useValue: objectUpdatesService },
{ provide: APP_CONFIG, useValue: environment }
], schemas: [
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
], schemas: [
NO_ERRORS_SCHEMA
]
}).compileComponents();
]
})
.overrideComponent(VirtualMetadataComponent, {
remove: {
imports: [ListableObjectComponentLoaderComponent]
}
})
.compileComponents();
fixture = TestBed.createComponent(VirtualMetadataComponent);
comp = fixture.componentInstance;

View File

@@ -14,6 +14,8 @@ import { PageInfo } from '../../../core/shared/page-info.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
import { DSONameServiceMock } from '../../../shared/mocks/dso-name.service.mock';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub';
const createMockCollection = (id: string) => Object.assign(new Collection(), {
id: id,
@@ -50,6 +52,7 @@ describe('CollectionsComponent', () => {
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: RemoteDataBuildService, useValue: getMockRemoteDataBuildService() },
{ provide: CollectionDataService, useValue: collectionDataService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(CollectionsComponent, {

View File

@@ -23,6 +23,17 @@ import { RemoteData } from '../../core/data/remote-data';
import { ServerResponseService } from '../../core/services/server-response.service';
import { SignpostingDataService } from '../../core/data/signposting-data.service';
import { LinkHeadService } from '../../core/services/link-head.service';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { ItemVersionsComponent } from '../versions/item-versions.component';
import { ItemVersionsNoticeComponent } from '../versions/notice/item-versions-notice.component';
import { ThemedLoadingComponent } from '../../shared/loading/themed-loading.component';
import { ThemedItemPageTitleFieldComponent } from '../simple/field-components/specific-field/title/themed-item-page-field.component';
import { DsoEditMenuComponent } from '../../shared/dso-page/dso-edit-menu/dso-edit-menu.component';
import { ViewTrackerComponent } from '../../statistics/angulartics/dspace/view-tracker.component';
import { ThemedItemAlertsComponent } from '../alerts/themed-item-alerts.component';
import { CollectionsComponent } from '../field-components/collections/collections.component';
import { ThemedFullFileSectionComponent } from './field-components/file-section/themed-full-file-section.component';
const mockItem: Item = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(createPaginatedList([])),
@@ -121,12 +132,27 @@ describe('FullItemPageComponent', () => {
{ provide: ServerResponseService, useValue: serverResponseService },
{ provide: SignpostingDataService, useValue: signpostingDataService },
{ provide: LinkHeadService, useValue: linkHeadService },
{ provide: PLATFORM_ID, useValue: 'server' }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(FullItemPageComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
{ provide: PLATFORM_ID, useValue: 'server' },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(FullItemPageComponent, {
remove: {
imports: [
ItemVersionsComponent,
ItemVersionsNoticeComponent,
ThemedLoadingComponent,
ThemedItemPageTitleFieldComponent,
DsoEditMenuComponent,
ViewTrackerComponent,
ThemedItemAlertsComponent,
CollectionsComponent,
ThemedFullFileSectionComponent
]
},
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(waitForAsync(() => {

View File

@@ -15,6 +15,10 @@ import { MediaViewerItem } from '../../core/shared/media-viewer-item.model';
import { VarDirective } from '../../shared/utils/var.directive';
import { MetadataFieldWrapperComponent } from '../../shared/metadata-field-wrapper/metadata-field-wrapper.component';
import { FileSizePipe } from '../../shared/utils/file-size-pipe';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { AuthService } from '../../core/auth/auth.service';
import { AuthServiceMock } from '../../shared/mocks/auth.service.mock';
describe('MediaViewerComponent', () => {
let comp: MediaViewerComponent;
@@ -77,6 +81,8 @@ describe('MediaViewerComponent', () => {
],
providers: [
{ provide: BitstreamDataService, useValue: bitstreamDataService },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: AuthService, useValue: new AuthServiceMock() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();

View File

@@ -17,6 +17,7 @@ import { PaginatedList } from '../../../core/data/paginated-list.model';
import { By } from '@angular/platform-browser';
import { Item } from '../../../core/shared/item.model';
import { OrcidAuthService } from '../../../core/orcid/orcid-auth.service';
import { PaginationComponent } from '../../../shared/pagination/pagination.component';
describe('OrcidQueueComponent test suite', () => {
let component: OrcidQueueComponent;
@@ -126,7 +127,13 @@ describe('OrcidQueueComponent test suite', () => {
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
})
.overrideComponent(OrcidQueueComponent, {
remove: {
imports: [PaginationComponent]
}
})
.compileComponents();
orcidQueueService = TestBed.inject(OrcidQueueDataService);
}));

View File

@@ -17,8 +17,13 @@ import { MetadataFieldWrapperComponent } from '../../../../shared/metadata-field
import { createPaginatedList } from '../../../../shared/testing/utils.test';
import { NotificationsService } from '../../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub';
import { APP_CONFIG } from 'src/config/app-config.interface';
import { environment } from 'src/environments/environment';
import { APP_CONFIG } from './../../../../../config/app-config.interface';
import { environment } from './../.././../../../environments/environment';
import { ThemeService } from './../.././../../shared/theme-support/theme.service';
import { getMockThemeService } from './../.././../../shared/mocks/theme-service.mock';
import { provideMockStore } from '@ngrx/store/testing';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from './../.././../../shared/testing/active-router.stub';
describe('FileSectionComponent', () => {
let comp: FileSectionComponent;
@@ -58,19 +63,30 @@ describe('FileSectionComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), BrowserAnimationsModule, FileSectionComponent, VarDirective, FileSizePipe, MetadataFieldWrapperComponent],
providers: [
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), BrowserAnimationsModule, FileSectionComponent, VarDirective, FileSizePipe],
providers: [
{ provide: BitstreamDataService, useValue: bitstreamDataService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: APP_CONFIG, useValue: environment }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: APP_CONFIG, useValue: environment },
{ provide: ThemeService, useValue: getMockThemeService() },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
provideMockStore()
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(FileSectionComponent, {
remove: {
imports: [
MetadataFieldWrapperComponent
]
}
})
.compileComponents();
}));
beforeEach(waitForAsync(() => {

View File

@@ -9,6 +9,8 @@ import { APP_CONFIG } from '../../../../../../config/app-config.interface';
import { environment } from '../../../../../../environments/environment';
import { BrowseDefinitionDataService } from '../../../../../core/browse/browse-definition-data.service';
import { BrowseDefinitionDataServiceStub } from '../../../../../shared/testing/browse-definition-data-service.stub';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
let comp: ItemPageDateFieldComponent;
let fixture: ComponentFixture<ItemPageDateFieldComponent>;
@@ -19,18 +21,20 @@ const mockValue = 'test value';
describe('ItemPageDateFieldComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), ItemPageDateFieldComponent, MetadataValuesComponent],
providers: [
imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}), ItemPageDateFieldComponent, MetadataValuesComponent],
providers: [
{ provide: APP_CONFIG, useValue: environment },
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ItemPageDateFieldComponent, {
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ItemPageDateFieldComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));

View File

@@ -9,6 +9,8 @@ import { APP_CONFIG } from '../../../../../../config/app-config.interface';
import { environment } from '../../../../../../environments/environment';
import { BrowseDefinitionDataService } from '../../../../../core/browse/browse-definition-data.service';
import { BrowseDefinitionDataServiceStub } from '../../../../../shared/testing/browse-definition-data-service.stub';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../../../shared/testing/active-router.stub';
let comp: GenericItemPageFieldComponent;
let fixture: ComponentFixture<GenericItemPageFieldComponent>;
@@ -29,7 +31,8 @@ describe('GenericItemPageFieldComponent', () => {
}), GenericItemPageFieldComponent, MetadataValuesComponent],
providers: [
{ provide: APP_CONFIG, useValue: environment },
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub }
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(GenericItemPageFieldComponent, {

View File

@@ -53,6 +53,14 @@ import { routeServiceStub } from '../../../../shared/testing/route-service.stub'
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { AuthService } from '../../../../core/auth/auth.service';
import { AuthServiceStub } from '../../../../shared/testing/auth-service.stub';
import { AsyncPipe } from '@angular/common';
import { DsoEditMenuComponent } from '../../../../shared/dso-page/dso-edit-menu/dso-edit-menu.component';
import { MetadataFieldWrapperComponent } from '../../../../shared/metadata-field-wrapper/metadata-field-wrapper.component';
import { ThemedResultsBackButtonComponent } from '../../../../shared/results-back-button/themed-results-back-button.component';
import { ThemedThumbnailComponent } from '../../../../thumbnail/themed-thumbnail.component';
import { ThemedItemPageTitleFieldComponent } from '../../field-components/specific-field/title/themed-item-page-field.component';
import { TabbedRelatedEntitiesSearchComponent } from '../../related-entities/tabbed-related-entities-search/tabbed-related-entities-search.component';
import { RelatedItemsComponent } from '../../related-items/related-items-component';
export function getIIIFSearchEnabled(enabled: boolean): MetadataValue {
@@ -100,7 +108,7 @@ export function getItemPageFieldsTest(mockItem: Item, component) {
let fixture: ComponentFixture<any>;
let relationshipService: jasmine.SpyObj<RelationshipDataService>;
beforeEach(waitForAsync(() => {
beforeEach(waitForAsync(async () => {
const mockBitstreamDataService = {
getThumbnailFor(item: Item): Observable<RemoteData<Bitstream>> {
return createSuccessfulRemoteDataObject$(new Bitstream());
@@ -115,55 +123,73 @@ export function getItemPageFieldsTest(mockItem: Item, component) {
getRelatedItemsByLabel: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
});
TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot({
await TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
RouterTestingModule,
component, GenericItemPageFieldComponent, TruncatePipe
],
providers: [
{
provide: APP_CONFIG,
useValue: {
browseBy: { showThumbnails: true },
markdown: { enabled: true }
}
},
provideMockStore(),
{ provide: ItemDataService, useValue: {} },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: RelationshipDataService, useValue: relationshipService },
{ provide: ObjectCacheService, useValue: {} },
{ provide: UUIDService, useValue: {} },
{ provide: RemoteDataBuildService, useValue: {} },
{ provide: CommunityDataService, useValue: {} },
{ provide: HALEndpointService, useValue: {} },
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: RouteService, useValue: routeServiceStub },
{ provide: AuthService, useValue: new AuthServiceStub() },
{ provide: AuthorizationDataService, useValue: authorizationService },
{ provide: ResearcherProfileDataService, useValue: {} },
{ provide: BrowseDefinitionDataService, useValue: BrowseDefinitionDataServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(component, {
add: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
provide: TranslateLoader,
useClass: TranslateLoaderMock,
},
}),
RouterTestingModule,
component,
GenericItemPageFieldComponent,
TruncatePipe,
AsyncPipe,
],
providers: [
{
provide: APP_CONFIG,
useValue: {
browseBy: { showThumbnails: true },
markdown: { enabled: true },
},
},
provideMockStore(),
{ provide: ItemDataService, useValue: {} },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: RelationshipDataService, useValue: relationshipService },
{ provide: ObjectCacheService, useValue: {} },
{ provide: UUIDService, useValue: {} },
{ provide: RemoteDataBuildService, useValue: {} },
{ provide: CommunityDataService, useValue: {} },
{ provide: HALEndpointService, useValue: {} },
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: RouteService, useValue: routeServiceStub },
{ provide: AuthService, useValue: new AuthServiceStub() },
{ provide: AuthorizationDataService, useValue: authorizationService },
{ provide: ResearcherProfileDataService, useValue: {} },
{
provide: BrowseDefinitionDataService,
useValue: BrowseDefinitionDataServiceStub,
},
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(component, {
remove: {
imports: [
ThemedResultsBackButtonComponent,
ThemedItemPageTitleFieldComponent,
DsoEditMenuComponent,
MetadataFieldWrapperComponent,
ThemedThumbnailComponent,
RelatedItemsComponent,
TabbedRelatedEntitiesSearchComponent
],
},
add: { changeDetection: ChangeDetectionStrategy.Default },
})
.compileComponents();
}));
beforeEach(waitForAsync(() => {
fixture = TestBed.createComponent(component);
comp = fixture.componentInstance;
@@ -443,42 +469,42 @@ describe('ItemComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
RouterTestingModule,
ItemComponent, GenericItemPageFieldComponent, TruncatePipe
],
providers: [
{ provide: ItemDataService, useValue: {} },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: RelationshipDataService, useValue: {} },
{ provide: ObjectCacheService, useValue: {} },
{ provide: UUIDService, useValue: {} },
{ provide: Store, useValue: {} },
{ provide: RemoteDataBuildService, useValue: {} },
{ provide: CommunityDataService, useValue: {} },
{ provide: HALEndpointService, useValue: {} },
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: {} },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: RouteService, useValue: mockRouteService },
{ provide: AuthorizationDataService, useValue: {} },
{ provide: ResearcherProfileDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ItemComponent, {
set: {changeDetection: ChangeDetectionStrategy.Default}
}),
RouterTestingModule,
ItemComponent, GenericItemPageFieldComponent, TruncatePipe
],
providers: [
{ provide: ItemDataService, useValue: {} },
{ provide: TruncatableService, useValue: mockTruncatableService },
{ provide: RelationshipDataService, useValue: {} },
{ provide: ObjectCacheService, useValue: {} },
{ provide: UUIDService, useValue: {} },
{ provide: Store, useValue: {} },
{ provide: RemoteDataBuildService, useValue: {} },
{ provide: CommunityDataService, useValue: {} },
{ provide: HALEndpointService, useValue: {} },
{ provide: HttpClient, useValue: {} },
{ provide: DSOChangeAnalyzer, useValue: {} },
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} },
{ provide: DefaultChangeAnalyzer, useValue: {} },
{ provide: BitstreamDataService, useValue: {} },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: RouteService, useValue: mockRouteService },
{ provide: AuthorizationDataService, useValue: {} },
{ provide: ResearcherProfileDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ItemComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
});
}));
@@ -492,7 +518,7 @@ describe('ItemComponent', () => {
fixture.detectChanges();
}));
it('should hide back button',() => {
it('should hide back button', () => {
spyOn(mockRouteService, 'getPreviousUrl').and.returnValue(observableOf('/item'));
comp.showBackButton.subscribe((val) => {
expect(val).toBeFalse();

View File

@@ -5,6 +5,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { Item } from '../../../../core/shared/item.model';
import { ConfigurationSearchPageComponent } from '../../../../search-page/configuration-search-page.component';
describe('RelatedEntitiesSearchComponent', () => {
let comp: RelatedEntitiesSearchComponent;
@@ -19,9 +20,15 @@ describe('RelatedEntitiesSearchComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), NoopAnimationsModule, FormsModule, RelatedEntitiesSearchComponent],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
imports: [TranslateModule.forRoot(), NoopAnimationsModule, FormsModule, RelatedEntitiesSearchComponent],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(RelatedEntitiesSearchComponent, {
remove: {
imports: [ConfigurationSearchPageComponent]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -9,6 +9,7 @@ import { RouterMock } from '../../../../shared/mocks/router.mock';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { VarDirective } from '../../../../shared/utils/var.directive';
import { of as observableOf } from 'rxjs';
import { RelatedEntitiesSearchComponent } from '../related-entities-search/related-entities-search.component';
describe('TabbedRelatedEntitiesSearchComponent', () => {
let comp: TabbedRelatedEntitiesSearchComponent;
@@ -29,18 +30,26 @@ describe('TabbedRelatedEntitiesSearchComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), NoopAnimationsModule, NgbModule, TabbedRelatedEntitiesSearchComponent, VarDirective],
providers: [
imports: [TranslateModule.forRoot(), NoopAnimationsModule, NgbModule, TabbedRelatedEntitiesSearchComponent, VarDirective],
providers: [
{
provide: ActivatedRoute,
useValue: {
queryParams: observableOf({ tab: mockRelationType })
},
provide: ActivatedRoute,
useValue: {
queryParams: observableOf({ tab: mockRelationType })
},
},
{ provide: Router, useValue: router }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(TabbedRelatedEntitiesSearchComponent, {
remove: {
imports: [
RelatedEntitiesSearchComponent
]
}
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -2,12 +2,14 @@ import { NO_ERRORS_SCHEMA } from '@angular/core';
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { Store } from '@ngrx/store';
import { TranslateModule } from '@ngx-translate/core';
import { of as observableOf } from 'rxjs';
import { LoginPageComponent } from './login-page.component';
import { ActivatedRouteStub } from '../shared/testing/active-router.stub';
import { AuthService } from '../core/auth/auth.service';
import { AuthServiceMock } from '../shared/mocks/auth.service.mock';
import { provideMockStore } from '@ngrx/store/testing';
describe('LoginPageComponent', () => {
let comp: LoginPageComponent;
@@ -16,25 +18,19 @@ describe('LoginPageComponent', () => {
params: observableOf({})
});
const store: Store<LoginPageComponent> = jasmine.createSpyObj('store', {
/* eslint-disable no-empty,@typescript-eslint/no-empty-function */
dispatch: {},
/* eslint-enable no-empty, @typescript-eslint/no-empty-function */
select: observableOf(true)
});
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
TranslateModule.forRoot(),
LoginPageComponent
],
providers: [
],
providers: [
{ provide: ActivatedRoute, useValue: activatedRouteStub },
{ provide: Store, useValue: store }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
{ provide: AuthService, useValue: new AuthServiceMock() },
provideMockStore({})
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {

View File

@@ -3,6 +3,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { LogoutPageComponent } from './logout-page.component';
import { provideMockStore } from '@ngrx/store/testing';
describe('LogoutPageComponent', () => {
let comp: LogoutPageComponent;
@@ -10,12 +11,16 @@ describe('LogoutPageComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
TranslateModule.forRoot(),
LogoutPageComponent
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
providers: [
provideMockStore()
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -1,8 +1,7 @@
/* eslint-disable max-classes-per-file */
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { ChangeDetectorRef, ElementRef, NO_ERRORS_SCHEMA } from '@angular/core';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, NO_ERRORS_SCHEMA } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { By } from '@angular/platform-browser';
import { createPaginatedList } from '../../shared/testing/utils.test';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
@@ -24,7 +23,6 @@ import { CollectionDataService } from '../../core/data/collection-data.service';
import { MockElementRef } from '../../shared/testing/element-ref.mock';
import { FindListOptions } from '../../core/data/find-list-options.model';
describe('CollectionSelectorComponent', () => {
let component: CollectionSelectorComponent;
let fixture: ComponentFixture<CollectionSelectorComponent>;
@@ -105,25 +103,32 @@ describe('CollectionSelectorComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
CollectionSelectorComponent, CollectionDropdownComponent
],
providers: [
CollectionSelectorComponent,
// CollectionDropdownComponent,
],
providers: [
{ provide: CollectionDataService, useValue: collectionDataServiceMock },
{ provide: ElementRef, useClass: MockElementRef },
{ provide: NgbActiveModal, useValue: modal },
{ provide: ActivatedRoute, useValue: {} },
{ provide: CollectionDropdownComponent, useClass: CollectionDropdownStubComponent },
ChangeDetectorRef
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(CollectionSelectorComponent, {
set: {
changeDetection: ChangeDetectionStrategy.Default
}
})
.compileComponents();
}));
beforeEach(() => {
@@ -142,11 +147,13 @@ describe('CollectionSelectorComponent', () => {
});
it('should call selectObject', () => {
spyOn(component, 'selectObject');
spyOn(component, 'selectObject').and.callThrough();
scheduler.schedule(() => fixture.detectChanges());
scheduler.flush();
const collectionItem = fixture.debugElement.query(By.css('.collection-item:nth-child(2)'));
collectionItem.triggerEventHandler('click', null);
fixture.detectChanges();
component.selectObject({collection: {name: 'test', id: 'test', uuid: 'test'}, communities: []});
expect(component.selectObject).toHaveBeenCalled();
});
@@ -155,3 +162,19 @@ describe('CollectionSelectorComponent', () => {
expect((component as any).activeModal.close).toHaveBeenCalled();
});
});
@Component({
selector: 'ds-collection-dropdown',
template: `
<li
(click)="test()"
class="dropdown-item collection-item"
title="test" >
</li>`,
standalone: true
})
export class CollectionDropdownStubComponent {
test() {
return 'test';
}
}

View File

@@ -1,72 +1,116 @@
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
import { ComponentFixture, fakeAsync, flush, TestBed, waitForAsync } from '@angular/core/testing';
import {
ComponentFixture,
fakeAsync,
flush,
TestBed,
waitForAsync,
} from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { of as observableOf } from 'rxjs';
import { TranslateModule } from '@ngx-translate/core';
import { cold } from 'jasmine-marbles';
import { MyDSpacePageComponent, SEARCH_CONFIG_SERVICE } from './my-dspace-page.component';
import {
MyDSpacePageComponent,
SEARCH_CONFIG_SERVICE,
} from './my-dspace-page.component';
import { SearchService } from '../core/shared/search/search.service';
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
import { MyDSpaceConfigurationValueType } from './my-dspace-configuration-value-type';
import { Context } from '../core/shared/context.model';
import SpyObj = jasmine.SpyObj;
import { RoleService } from '../core/roles/role.service';
import { MyDSpaceNewSubmissionComponent } from './my-dspace-new-submission/my-dspace-new-submission.component';
import { RoleDirective } from '../shared/roles/role.directive';
import { ThemeService } from '../shared/theme-support/theme.service';
import { getMockThemeService } from '../shared/mocks/theme-service.mock';
describe('MyDSpacePageComponent', () => {
let comp: MyDSpacePageComponent;
let fixture: ComponentFixture<MyDSpacePageComponent>;
let roleService: any;
const searchServiceStub: SpyObj<SearchService> = jasmine.createSpyObj('SearchService', {
setServiceOptions: jasmine.createSpy('setServiceOptions')
});
const searchServiceStub: SpyObj<SearchService> = jasmine.createSpyObj(
'SearchService',
{
setServiceOptions: jasmine.createSpy('setServiceOptions'),
}
);
const myDSpaceConfigurationServiceStub: SpyObj<MyDSpaceConfigurationService> = jasmine.createSpyObj('MyDSpaceConfigurationService', {
getAvailableConfigurationOptions: jasmine.createSpy('getAvailableConfigurationOptions')
});
const myDSpaceConfigurationServiceStub: SpyObj<MyDSpaceConfigurationService> =
jasmine.createSpyObj('MyDSpaceConfigurationService', {
getAvailableConfigurationOptions: jasmine.createSpy(
'getAvailableConfigurationOptions'
),
});
const configurationList = [
{
value: MyDSpaceConfigurationValueType.Workspace,
label: `mydspace.show.${MyDSpaceConfigurationValueType.Workspace}`,
context: Context.Workspace
context: Context.Workspace,
},
{
value: MyDSpaceConfigurationValueType.Workflow,
label: `mydspace.show.${MyDSpaceConfigurationValueType.Workflow}`,
context: Context.Workflow
}
context: Context.Workflow,
},
];
beforeEach(waitForAsync(() => {
roleService = jasmine.createSpyObj('roleService', {
checkRole: ()=> observableOf(true)
});
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), NoopAnimationsModule, NgbCollapseModule, MyDSpacePageComponent],
providers: [
imports: [
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
NoopAnimationsModule,
NgbCollapseModule,
MyDSpacePageComponent,
RoleDirective
],
providers: [
{ provide: SearchService, useValue: searchServiceStub },
{ provide: MyDSpaceConfigurationService, useValue: myDSpaceConfigurationServiceStub },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(MyDSpacePageComponent, {
set: {
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useValue: myDSpaceConfigurationServiceStub
}
]
}
}).compileComponents();
{
provide: MyDSpaceConfigurationService,
useValue: myDSpaceConfigurationServiceStub,
},
{ provide: RoleService, useValue: roleService },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(MyDSpacePageComponent, {
set: {
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useValue: myDSpaceConfigurationServiceStub,
},
],
},
})
.overrideComponent(MyDSpacePageComponent, {
remove: {
imports: [MyDSpaceNewSubmissionComponent],
},
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyDSpacePageComponent);
comp = fixture.componentInstance; // SearchPageComponent test instance
myDSpaceConfigurationServiceStub.getAvailableConfigurationOptions.and.returnValue(observableOf(configurationList));
myDSpaceConfigurationServiceStub.getAvailableConfigurationOptions.and.returnValue(
observableOf(configurationList)
);
fixture.detectChanges();
});
afterEach(() => {
@@ -74,14 +118,14 @@ describe('MyDSpacePageComponent', () => {
});
it('should init properly context and configuration', fakeAsync(() => {
expect(comp.configurationList$).toBeObservable(cold('(a|)', {
a: configurationList
}));
expect(comp.configurationList$).toBeObservable(
cold('(a|)', {
a: configurationList,
})
);
flush();
expect(comp.configuration).toBe(MyDSpaceConfigurationValueType.Workspace);
expect(comp.context).toBe(Context.Workspace);
}));
});

View File

@@ -13,7 +13,9 @@ import { of as observableOf } from 'rxjs';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
import { TranslateLoaderMock } from '../../shared/mocks/translate-loader.mock';
import { RequestService } from '../../core/data/request.service';
import { Router } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { ScriptsSelectComponent } from './scripts-select/scripts-select.component';
describe('ProcessFormComponent', () => {
let component: ProcessFormComponent;
@@ -51,24 +53,32 @@ describe('ProcessFormComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [
imports: [
FormsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
ProcessFormComponent
],
providers: [
],
providers: [
{ provide: ScriptDataService, useValue: scriptService },
{ provide: NotificationsService, useClass: NotificationsServiceStub },
{ provide: RequestService, useValue: jasmine.createSpyObj('requestService', ['removeBySubstring', 'removeByHrefSubstring']) },
{ provide: Router, useValue: jasmine.createSpyObj('router', ['navigateByUrl']) },
],
schemas: [NO_ERRORS_SCHEMA]
})
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(ProcessFormComponent, {
remove: {
imports: [
ScriptsSelectComponent
]
}
})
.compileComponents();
}));

View File

@@ -17,6 +17,8 @@ import { ActivatedRoute } from '@angular/router';
import { LinkService } from '../../core/cache/builders/link.service';
import { VarDirective } from '../../shared/utils/var.directive';
import { ProcessDataService } from '../../core/data/processes/process-data.service';
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { ProcessFormComponent } from '../form/process-form.component';
describe('NewProcessComponent', () => {
let component: NewProcessComponent;
@@ -39,10 +41,11 @@ describe('NewProcessComponent', () => {
{
invoke: observableOf({
response:
{
isSuccessful: true
}
})
{
isSuccessful: true
}
}),
findAll: createSuccessfulRemoteDataObject$(script),
}
);
}
@@ -50,26 +53,31 @@ describe('NewProcessComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [
imports: [
FormsModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
}),
NewProcessComponent, VarDirective
],
providers: [
],
providers: [
{ provide: ScriptDataService, useValue: scriptService },
{ provide: NotificationsService, useClass: NotificationsServiceStub },
{ provide: RequestService, useValue: {} },
{ provide: ActivatedRoute, useValue: { snapshot: { queryParams: {} } } },
{ provide: LinkService, useValue: {} },
{ provide: ProcessDataService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
})
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(NewProcessComponent, {
remove: {
imports: [ProcessFormComponent]
}
})
.compileComponents();
}));

View File

@@ -11,7 +11,7 @@ import { EPersonDataService } from '../../core/eperson/eperson-data.service';
import cloneDeep from 'lodash/cloneDeep';
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { FormComponent } from '../../shared/form/form.component';
import { ConfigurationDataService } from 'src/app/core/data/configuration-data.service';
import { ConfigurationDataService } from '../../core/data/configuration-data.service';
import { of } from 'rxjs';
describe('ProfilePageMetadataFormComponent', () => {

View File

@@ -4,6 +4,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { ReactiveFormsModule } from '@angular/forms';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { RegisterEmailComponent } from './register-email.component';
import { RegisterEmailFormComponent } from '../../register-email-form/register-email-form.component';
describe('RegisterEmailComponent', () => {
@@ -12,9 +13,15 @@ describe('RegisterEmailComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CommonModule, TranslateModule.forRoot(), ReactiveFormsModule, RegisterEmailComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
imports: [CommonModule, TranslateModule.forRoot(), ReactiveFormsModule, RegisterEmailComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.overrideComponent(RegisterEmailComponent, {
remove: {
imports: [RegisterEmailFormComponent]
}
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RegisterEmailComponent);

View File

@@ -21,6 +21,8 @@ import { EPerson } from '../../core/eperson/models/eperson.model';
import { Item } from '../../core/shared/item.model';
import { RequestCopyEmail } from '../email-request-copy/request-copy-email.model';
import { DSONameServiceMock } from '../../shared/mocks/dso-name.service.mock';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
describe('DenyRequestCopyComponent', () => {
let component: DenyRequestCopyComponent;
@@ -108,6 +110,7 @@ describe('DenyRequestCopyComponent', () => {
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: ItemRequestDataService, useValue: itemRequestService },
{ provide: NotificationsService, useValue: notificationsService },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();

View File

@@ -21,6 +21,8 @@ import { Item } from '../../core/shared/item.model';
import { RequestCopyEmail } from '../email-request-copy/request-copy-email.model';
import { GrantRequestCopyComponent } from './grant-request-copy.component';
import { DSONameServiceMock } from '../../shared/mocks/dso-name.service.mock';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { ThemeService } from '../../shared/theme-support/theme.service';
describe('GrantRequestCopyComponent', () => {
let component: GrantRequestCopyComponent;
@@ -108,6 +110,7 @@ describe('GrantRequestCopyComponent', () => {
{ provide: DSONameService, useValue: new DSONameServiceMock() },
{ provide: ItemRequestDataService, useValue: itemRequestService },
{ provide: NotificationsService, useValue: notificationsService },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();

View File

@@ -27,6 +27,8 @@ import { RouteService } from '../core/services/route.service';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { MenuServiceStub } from '../shared/testing/menu-service.stub';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { NotificationsBoardComponent } from '../shared/notifications/notifications-board/notifications-board.component';
import { SystemWideAlertBannerComponent } from '../system-wide-alert/alert-banner/system-wide-alert-banner.component';
describe('RootComponent', () => {
let component: RootComponent;
@@ -62,7 +64,13 @@ describe('RootComponent', () => {
RouteService
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
})
.overrideComponent(RootComponent, {
remove: {
imports: [NotificationsBoardComponent, SystemWideAlertBannerComponent]
}
})
.compileComponents();
});
beforeEach(() => {

View File

@@ -16,6 +16,8 @@ import { AuthTokenInfo } from '../../core/auth/models/auth-token-info.model';
import { AuthService } from '../../core/auth/auth.service';
import { of } from 'rxjs';
import { BrowserOnlyMockPipe } from '../testing/browser-only-mock.pipe';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../testing/active-router.stub';
describe('AuthNavMenuComponent', () => {
@@ -77,18 +79,18 @@ describe('AuthNavMenuComponent', () => {
}),
TranslateModule.forRoot(),
AuthNavMenuComponent
],
declarations: [BrowserOnlyMockPipe],
providers: [
{ provide: HostWindowService, useValue: window },
{ provide: AuthService, useValue: authService }
],
schemas: [
CUSTOM_ELEMENTS_SCHEMA
]
})
],
declarations: [BrowserOnlyMockPipe],
providers: [
{ provide: HostWindowService, useValue: window },
{ provide: AuthService, useValue: authService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [
CUSTOM_ELEMENTS_SCHEMA
]
})
.compileComponents();
}));
beforeEach(() => {
@@ -273,7 +275,8 @@ describe('AuthNavMenuComponent', () => {
],
providers: [
{ provide: HostWindowService, useValue: window },
{ provide: AuthService, useValue: authService }
{ provide: AuthService, useValue: authService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [
CUSTOM_ELEMENTS_SCHEMA

View File

@@ -14,6 +14,8 @@ import { cold } from 'jasmine-marbles';
import { By } from '@angular/platform-browser';
import { AuthService } from '../../../core/auth/auth.service';
import { of } from 'rxjs';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../testing/active-router.stub';
describe('UserMenuComponent', () => {
@@ -70,7 +72,8 @@ describe('UserMenuComponent', () => {
UserMenuComponent
],
providers: [
{ provide: AuthService, useValue: authService }
{ provide: AuthService, useValue: authService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [
NO_ERRORS_SCHEMA
@@ -116,8 +119,8 @@ describe('UserMenuComponent', () => {
expect(component.user$).toBeObservable(cold('(c|)', {
c: EPersonMock
}));
expect(deUserMenu).toBeNull();
const span = deUserMenu.query(By.css('.dropdown-item-text'));
expect(span).toBeNull();
});
});

View File

@@ -10,7 +10,7 @@ import { of as observableOf } from 'rxjs';
import { Component } from '@angular/core';
import { DsoEditMenuExpandableSectionComponent } from './dso-edit-menu-expandable-section.component';
import { By } from '@angular/platform-browser';
import { MenuItemType } from 'src/app/shared/menu/menu-item-type.model';
import { MenuItemType } from '../../../../shared/menu/menu-item-type.model';
describe('DsoEditMenuExpandableSectionComponent', () => {
let component: DsoEditMenuExpandableSectionComponent;

View File

@@ -10,7 +10,7 @@ import { Component } from '@angular/core';
import { By } from '@angular/platform-browser';
import { DsoEditMenuSectionComponent } from './dso-edit-menu-section.component';
import { OnClickMenuItemModel } from '../../../menu/menu-item/models/onclick.model';
import { MenuItemType } from 'src/app/shared/menu/menu-item-type.model';
import { MenuItemType } from '../../../../shared/menu/menu-item-type.model';
import { ActivatedRouteStub } from '../../../testing/active-router.stub';
import { TranslateModule } from '@ngx-translate/core';

View File

@@ -8,6 +8,7 @@ import { EditCollectionSelectorComponent } from './edit-collection-selector.comp
import { Collection } from '../../../../core/shared/collection.model';
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { DSOSelectorComponent } from '../../dso-selector/dso-selector.component';
describe('EditCollectionSelectorComponent', () => {
let component: EditCollectionSelectorComponent;
@@ -29,27 +30,33 @@ describe('EditCollectionSelectorComponent', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), EditCollectionSelectorComponent],
providers: [
imports: [TranslateModule.forRoot(), EditCollectionSelectorComponent],
providers: [
{ provide: NgbActiveModal, useValue: modalStub },
{
provide: ActivatedRoute,
useValue: {
root: {
snapshot: {
data: {
dso: collectionRD,
},
},
}
},
provide: ActivatedRoute,
useValue: {
root: {
snapshot: {
data: {
dso: collectionRD,
},
},
}
},
},
{
provide: Router, useValue: router
provide: Router, useValue: router
}
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(EditCollectionSelectorComponent, {
remove: {
imports: [DSOSelectorComponent]
}
})
.compileComponents();
}));

View File

@@ -8,6 +8,7 @@ import { EditCommunitySelectorComponent } from './edit-community-selector.compon
import { Community } from '../../../../core/shared/community.model';
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { DSOSelectorComponent } from '../../dso-selector/dso-selector.component';
describe('EditCommunitySelectorComponent', () => {
let component: EditCommunitySelectorComponent;
@@ -49,7 +50,13 @@ describe('EditCommunitySelectorComponent', () => {
}
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
})
.overrideComponent(EditCommunitySelectorComponent, {
remove: {
imports: [DSOSelectorComponent]
}
})
.compileComponents();
}));

View File

@@ -8,6 +8,7 @@ import { Item } from '../../../../core/shared/item.model';
import { RouterStub } from '../../../testing/router.stub';
import { MetadataValue } from '../../../../core/shared/metadata.models';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { DSOSelectorComponent } from '../../dso-selector/dso-selector.component';
describe('EditItemSelectorComponent', () => {
let component: EditItemSelectorComponent;
@@ -16,36 +17,49 @@ describe('EditItemSelectorComponent', () => {
const item = new Item();
item.uuid = '1234-1234-1234-1234';
item.metadata = { 'dc.title': [Object.assign(new MetadataValue(), { value: 'Item title', language: undefined })] };
item.metadata = {
'dc.title': [
Object.assign(new MetadataValue(), {
value: 'Item title',
language: undefined,
}),
],
};
const router = new RouterStub();
const itemRD = createSuccessfulRemoteDataObject(item);
const modalStub = jasmine.createSpyObj('modalStub', ['close']);
const editPath = '/items/1234-1234-1234-1234/edit';
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), EditItemSelectorComponent],
providers: [
beforeEach(waitForAsync(async () => {
await TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), EditItemSelectorComponent],
providers: [
{ provide: NgbActiveModal, useValue: modalStub },
{
provide: ActivatedRoute,
useValue: {
root: {
snapshot: {
data: {
dso: itemRD,
},
},
}
provide: ActivatedRoute,
useValue: {
root: {
snapshot: {
data: {
dso: itemRD,
},
},
},
},
},
{
provide: Router, useValue: router
}
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
provide: Router,
useValue: router,
},
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(EditItemSelectorComponent, {
remove: {
imports: [DSOSelectorComponent],
},
})
.compileComponents();
}));
beforeEach(() => {
@@ -63,5 +77,4 @@ describe('EditItemSelectorComponent', () => {
component.navigate(item);
expect(router.navigate).toHaveBeenCalledWith([editPath]);
});
});

View File

@@ -20,6 +20,8 @@ import {
} from '../../../remote-data.utils';
import { ExportBatchSelectorComponent } from './export-batch-selector.component';
import { AuthorizationDataService } from '../../../../core/data/feature-authorization/authorization-data.service';
import { SearchService } from '../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../shared/testing/search-service.stub';
// No way to add entryComponents yet to testbed; alternative implemented; source: https://stackoverflow.com/questions/41689468/how-to-shallow-test-a-component-with-an-entrycomponents
@NgModule({
@@ -90,6 +92,7 @@ describe('ExportBatchSelectorComponent', () => {
{ provide: NotificationsService, useValue: notificationService },
{ provide: ScriptDataService, useValue: scriptService },
{ provide: AuthorizationDataService, useValue: authorizationDataService },
{ provide: SearchService, useValue: new SearchServiceStub()},
{
provide: ActivatedRoute,
useValue: {

View File

@@ -6,6 +6,12 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { Collection } from '../../../../core/shared/collection.model';
import { Item } from '../../../../core/shared/item.model';
import { ImportBatchSelectorComponent } from './import-batch-selector.component';
import { SearchService } from '../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../shared/testing/search-service.stub';
import { NotificationsService } from '../../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub';
import { ThemeService } from '../../../../shared/theme-support/theme.service';
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
describe('ImportBatchSelectorComponent', () => {
let component: ImportBatchSelectorComponent;
@@ -35,6 +41,9 @@ describe('ImportBatchSelectorComponent', () => {
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), ImportBatchSelectorComponent],
providers: [
{ provide: NgbActiveModal, useValue: modalStub },
{ provide: SearchService, useValue: new SearchServiceStub() },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: ThemeService, useValue: getMockThemeService() },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();

Some files were not shown because too many files have changed in this diff Show More