mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-14 13:33:03 +00:00
[CST-12043] unit tests
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { JsonPatchOperationPathCombiner } from 'src/app/core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from 'src/app/core/json-patch/builder/json-patch-operations-builder';
|
||||
import { SectionUploadService } from './section-upload.service';
|
||||
import { Store, StoreModule } from '@ngrx/store';
|
||||
|
||||
const jsonPatchOpBuilder: any = jasmine.createSpyObj('jsonPatchOpBuilder', {
|
||||
add: jasmine.createSpy('add'),
|
||||
replace: jasmine.createSpy('replace'),
|
||||
remove: jasmine.createSpy('remove'),
|
||||
});
|
||||
|
||||
describe('SectionUploadService test suite', () => {
|
||||
let sectionUploadService: SectionUploadService;
|
||||
let operationsBuilder: any;
|
||||
const pathCombiner = new JsonPatchOperationPathCombiner('sections', 'upload');
|
||||
const primaryPath = pathCombiner.getPath('primary');
|
||||
const fileId = 'test';
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [StoreModule],
|
||||
providers: [
|
||||
{ provide: Store, useValue: {} },
|
||||
SectionUploadService,
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: jsonPatchOpBuilder },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
});
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
sectionUploadService = TestBed.inject(SectionUploadService);
|
||||
operationsBuilder = TestBed.inject(JsonPatchOperationsBuilder);
|
||||
});
|
||||
|
||||
[
|
||||
{
|
||||
initialPrimary: null,
|
||||
primary: true,
|
||||
operationName: 'add',
|
||||
expected: [primaryPath, fileId, false, true]
|
||||
},
|
||||
{
|
||||
initialPrimary: true,
|
||||
primary: false,
|
||||
operationName: 'remove',
|
||||
expected: [primaryPath]
|
||||
},
|
||||
{
|
||||
initialPrimary: false,
|
||||
primary: true,
|
||||
operationName: 'replace',
|
||||
expected: [primaryPath, fileId, true]
|
||||
}
|
||||
].forEach(({ initialPrimary, primary, operationName, expected }) => {
|
||||
it(`updatePrimaryBitstreamOperation should add ${operationName} operation`, () => {
|
||||
const path = pathCombiner.getPath('primary');
|
||||
sectionUploadService.updatePrimaryBitstreamOperation(path, initialPrimary, primary, fileId);
|
||||
expect(operationsBuilder[operationName]).toHaveBeenCalledWith(...expected);
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user