Clean up test.

This commit is contained in:
Michael Spalti
2021-12-06 12:56:13 -08:00
parent b4b17136a6
commit c112a036df

View File

@@ -42,7 +42,7 @@ let fixture: ComponentFixture<EditBitstreamPageComponent>;
describe('EditBitstreamPageComponent', () => { describe('EditBitstreamPageComponent', () => {
beforeEach(waitForAsync(() => { beforeEach(() => {
allFormats = [ allFormats = [
Object.assign({ Object.assign({
id: '1', id: '1',
@@ -73,13 +73,7 @@ describe('EditBitstreamPageComponent', () => {
}) })
] as BitstreamFormat[]; ] as BitstreamFormat[];
selectedFormat = allFormats[1]; selectedFormat = allFormats[1];
notificationsService = jasmine.createSpyObj('notificationsService',
{
info: infoNotification,
warning: warningNotification,
success: successNotification
}
);
formService = Object.assign({ formService = Object.assign({
createFormGroup: (fModel: DynamicFormControlModel[]) => { createFormGroup: (fModel: DynamicFormControlModel[]) => {
const controls = {}; const controls = {};
@@ -92,293 +86,305 @@ describe('EditBitstreamPageComponent', () => {
return undefined; return undefined;
} }
}); });
bitstream = Object.assign(new Bitstream(), {
metadata: {
'dc.description': [
{
value: 'Bitstream description'
}
],
'dc.title': [
{
value: 'Bitstream title'
}
]
},
format: createSuccessfulRemoteDataObject$(selectedFormat),
_links: {
self: 'bitstream-selflink'
},
bundle: createSuccessfulRemoteDataObject$({
item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
uuid: 'some-uuid',
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
return undefined;
},
}))
})
});
bitstreamService = jasmine.createSpyObj('bitstreamService', {
findById: createSuccessfulRemoteDataObject$(bitstream),
update: createSuccessfulRemoteDataObject$(bitstream),
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
commitUpdates: {},
patch: {}
});
bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', { bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', {
findAll: createSuccessfulRemoteDataObject$(createPaginatedList(allFormats)) findAll: createSuccessfulRemoteDataObject$(createPaginatedList(allFormats))
}); });
TestBed.configureTestingModule({ notificationsService = jasmine.createSpyObj('notificationsService',
imports: [TranslateModule.forRoot(), RouterTestingModule], {
declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective], info: infoNotification,
providers: [ warning: warningNotification,
{provide: NotificationsService, useValue: notificationsService}, success: successNotification
{provide: DynamicFormService, useValue: formService}, }
{provide: ActivatedRoute, );
useValue: { });
data: observableOf({bitstream: createSuccessfulRemoteDataObject(bitstream)}),
snapshot: {queryParams: {}} describe('EditBitstreamPageComponent no IIIF fields', () => {
}
beforeEach(waitForAsync(() => {
bitstream = Object.assign(new Bitstream(), {
metadata: {
'dc.description': [
{
value: 'Bitstream description'
}
],
'dc.title': [
{
value: 'Bitstream title'
}
]
}, },
{provide: BitstreamDataService, useValue: bitstreamService}, format: createSuccessfulRemoteDataObject$(selectedFormat),
{provide: BitstreamFormatDataService, useValue: bitstreamFormatService}, _links: {
ChangeDetectorRef self: 'bitstream-selflink'
], },
schemas: [NO_ERRORS_SCHEMA] bundle: createSuccessfulRemoteDataObject$({
}).compileComponents(); item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
uuid: 'some-uuid',
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
return undefined;
},
}))
})
});
bitstreamService = jasmine.createSpyObj('bitstreamService', {
findById: createSuccessfulRemoteDataObject$(bitstream),
update: createSuccessfulRemoteDataObject$(bitstream),
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
commitUpdates: {},
patch: {}
});
bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', {
findAll: createSuccessfulRemoteDataObject$(createPaginatedList(allFormats))
});
})); TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule],
declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective],
providers: [
{provide: NotificationsService, useValue: notificationsService},
{provide: DynamicFormService, useValue: formService},
{provide: ActivatedRoute,
useValue: {
data: observableOf({bitstream: createSuccessfulRemoteDataObject(bitstream)}),
snapshot: {queryParams: {}}
}
},
{provide: BitstreamDataService, useValue: bitstreamService},
{provide: BitstreamFormatDataService, useValue: bitstreamFormatService},
ChangeDetectorRef
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
beforeEach(() => { }));
fixture = TestBed.createComponent(EditBitstreamPageComponent);
comp = fixture.componentInstance;
fixture.detectChanges();
router = TestBed.inject(Router);
spyOn(router, 'navigate');
});
describe('on startup', () => {
let rawForm;
beforeEach(() => { beforeEach(() => {
rawForm = comp.formGroup.getRawValue(); fixture = TestBed.createComponent(EditBitstreamPageComponent);
comp = fixture.componentInstance;
fixture.detectChanges();
router = TestBed.inject(Router);
spyOn(router, 'navigate');
}); });
it('should fill in the bitstream\'s title', () => { describe('on startup', () => {
expect(rawForm.fileNamePrimaryContainer.fileName).toEqual(bitstream.name); let rawForm;
});
it('should fill in the bitstream\'s description', () => {
expect(rawForm.descriptionContainer.description).toEqual(bitstream.firstMetadataValue('dc.description'));
});
it('should select the correct format', () => {
expect(rawForm.formatContainer.selectedFormat).toEqual(selectedFormat.id);
});
it('should put the \"New Format\" input on invisible', () => {
expect(comp.formLayout.newFormat.grid.host).toContain('invisible');
});
});
describe('when an unknown format is selected', () => {
beforeEach(() => {
comp.updateNewFormatLayout(allFormats[0].id);
});
it('should remove the invisible class from the \"New Format\" input', () => {
expect(comp.formLayout.newFormat.grid.host).not.toContain('invisible');
});
});
describe('onSubmit', () => {
describe('when selected format hasn\'t changed', () => {
beforeEach(() => { beforeEach(() => {
comp.onSubmit(); rawForm = comp.formGroup.getRawValue();
}); });
it('should call update', () => { it('should fill in the bitstream\'s title', () => {
expect(bitstreamService.update).toHaveBeenCalled(); expect(rawForm.fileNamePrimaryContainer.fileName).toEqual(bitstream.name);
}); });
it('should commit the updates', () => { it('should fill in the bitstream\'s description', () => {
expect(bitstreamService.commitUpdates).toHaveBeenCalled(); expect(rawForm.descriptionContainer.description).toEqual(bitstream.firstMetadataValue('dc.description'));
});
it('should select the correct format', () => {
expect(rawForm.formatContainer.selectedFormat).toEqual(selectedFormat.id);
});
it('should put the \"New Format\" input on invisible', () => {
expect(comp.formLayout.newFormat.grid.host).toContain('invisible');
}); });
}); });
describe('when selected format has changed', () => { describe('when an unknown format is selected', () => {
beforeEach(() => { beforeEach(() => {
comp.formGroup.patchValue({ comp.updateNewFormatLayout(allFormats[0].id);
formatContainer: { });
selectedFormat: allFormats[2].id
} it('should remove the invisible class from the \"New Format\" input', () => {
expect(comp.formLayout.newFormat.grid.host).not.toContain('invisible');
});
});
describe('onSubmit', () => {
describe('when selected format hasn\'t changed', () => {
beforeEach(() => {
comp.onSubmit();
});
it('should call update', () => {
expect(bitstreamService.update).toHaveBeenCalled();
});
it('should commit the updates', () => {
expect(bitstreamService.commitUpdates).toHaveBeenCalled();
}); });
fixture.detectChanges();
comp.onSubmit();
}); });
it('should call update', () => { describe('when selected format has changed', () => {
expect(bitstreamService.update).toHaveBeenCalled(); beforeEach(() => {
}); comp.formGroup.patchValue({
formatContainer: {
selectedFormat: allFormats[2].id
}
});
fixture.detectChanges();
comp.onSubmit();
});
it('should call updateFormat', () => { it('should call update', () => {
expect(bitstreamService.updateFormat).toHaveBeenCalled(); expect(bitstreamService.update).toHaveBeenCalled();
}); });
it('should commit the updates', () => { it('should call updateFormat', () => {
expect(bitstreamService.commitUpdates).toHaveBeenCalled(); expect(bitstreamService.updateFormat).toHaveBeenCalled();
});
it('should commit the updates', () => {
expect(bitstreamService.commitUpdates).toHaveBeenCalled();
});
});
});
describe('when the cancel button is clicked', () => {
it('should call navigateToItemEditBitstreams method', () => {
spyOn(comp, 'navigateToItemEditBitstreams');
comp.onCancel();
expect(comp.navigateToItemEditBitstreams).toHaveBeenCalled();
});
});
describe('when navigateToItemEditBitstreams is called, and the component has an itemId', () => {
it('should redirect to the item edit page on the bitstreams tab with the itemId from the component', () => {
comp.itemId = 'some-uuid1';
comp.navigateToItemEditBitstreams();
expect(router.navigate).toHaveBeenCalledWith([getEntityEditRoute(null, 'some-uuid1'), 'bitstreams']);
});
});
describe('when navigateToItemEditBitstreams is called, and the component does not have an itemId', () => {
it('should redirect to the item edit page on the bitstreams tab with the itemId from the bundle links ', () => {
comp.itemId = undefined;
comp.navigateToItemEditBitstreams();
expect(router.navigate).toHaveBeenCalledWith([getEntityEditRoute(null, 'some-uuid'), 'bitstreams']);
}); });
}); });
}); });
describe('when the cancel button is clicked', () => {
it('should call navigateToItemEditBitstreams method', () => {
spyOn(comp, 'navigateToItemEditBitstreams');
comp.onCancel();
expect(comp.navigateToItemEditBitstreams).toHaveBeenCalled();
});
});
describe('when navigateToItemEditBitstreams is called, and the component has an itemId', () => {
it('should redirect to the item edit page on the bitstreams tab with the itemId from the component', () => {
comp.itemId = 'some-uuid1';
comp.navigateToItemEditBitstreams();
expect(router.navigate).toHaveBeenCalledWith([getEntityEditRoute(null, 'some-uuid1'), 'bitstreams']);
});
});
describe('when navigateToItemEditBitstreams is called, and the component does not have an itemId', () => {
it('should redirect to the item edit page on the bitstreams tab with the itemId from the bundle links ', () => {
comp.itemId = undefined;
comp.navigateToItemEditBitstreams();
expect(router.navigate).toHaveBeenCalledWith([getEntityEditRoute(null, 'some-uuid'), 'bitstreams']);
});
});
});
describe('EditBitstreamPageComponent with IIIF', () => { describe('EditBitstreamPageComponent with IIIF fields', () => {
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
bitstreamService = jasmine.createSpyObj('bitstreamService', { bitstream = Object.assign(new Bitstream(), {
findById: createSuccessfulRemoteDataObject$(bitstream), metadata: {
update: createSuccessfulRemoteDataObject$(bitstream), 'dc.description': [
updateFormat: createSuccessfulRemoteDataObject$(bitstream), {
commitUpdates: {}, value: 'Bitstream description'
patch: {} }
}); ],
bitstream = Object.assign(new Bitstream(), { 'dc.title': [
metadata: { {
'dc.description': [ value: 'Bitstream title'
{ }
value: 'Bitstream description' ],
} 'iiif.label': [
], {
'dc.title': [ value: 'chapter one'
{ }
value: 'Bitstream title' ],
} 'iiif.toc': [
], {
'iiif.label': [ value: 'chapter one'
{ }
value: 'chapter one' ],
} 'iiif.image.width': [
], {
'iiif.toc': [ value: '2400'
{ }
value: 'chapter one' ],
} 'iiif.image.height': [
], {
'iiif.image.width': [ value: '2800'
{ }
value: '2400' ],
}
],
'iiif.image.height': [
{
value: '2800'
}
],
},
format: createSuccessfulRemoteDataObject$(selectedFormat),
_links: {
self: 'bitstream-selflink'
},
bundle: createSuccessfulRemoteDataObject$({
item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
uuid: 'some-uuid',
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
return 'True';
}
}))
})
});
bitstreamService = jasmine.createSpyObj('bitstreamService', {
findById: createSuccessfulRemoteDataObject$(bitstream),
update: createSuccessfulRemoteDataObject$(bitstream),
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
commitUpdates: {},
patch: {}
});
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule],
declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective],
providers: [
{provide: NotificationsService, useValue: notificationsService},
{provide: DynamicFormService, useValue: formService},
{provide: ActivatedRoute,
useValue: {
data: observableOf({bitstream: createSuccessfulRemoteDataObject(bitstream)}),
snapshot: {queryParams: {}}
}
}, },
{provide: BitstreamDataService, useValue: bitstreamService}, format: createSuccessfulRemoteDataObject$(selectedFormat),
{provide: BitstreamFormatDataService, useValue: bitstreamFormatService}, _links: {
ChangeDetectorRef self: 'bitstream-selflink'
], },
schemas: [NO_ERRORS_SCHEMA] bundle: createSuccessfulRemoteDataObject$({
}).compileComponents(); item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
})); uuid: 'some-uuid',
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
return 'True';
}
}))
})
});
bitstreamService = jasmine.createSpyObj('bitstreamService', {
findById: createSuccessfulRemoteDataObject$(bitstream),
update: createSuccessfulRemoteDataObject$(bitstream),
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
commitUpdates: {},
patch: {}
});
beforeEach(() => { TestBed.configureTestingModule({
fixture = TestBed.createComponent(EditBitstreamPageComponent); imports: [TranslateModule.forRoot(), RouterTestingModule],
comp = fixture.componentInstance; declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective],
fixture.detectChanges(); providers: [
router = TestBed.inject(Router); {provide: NotificationsService, useValue: notificationsService},
spyOn(router, 'navigate'); {provide: DynamicFormService, useValue: formService},
}); {provide: ActivatedRoute,
useValue: {
data: observableOf({bitstream: createSuccessfulRemoteDataObject(bitstream)}),
describe('on startup', () => { snapshot: {queryParams: {}}
let rawForm; }
},
{provide: BitstreamDataService, useValue: bitstreamService},
{provide: BitstreamFormatDataService, useValue: bitstreamFormatService},
ChangeDetectorRef
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => { beforeEach(() => {
rawForm = comp.formGroup.getRawValue(); fixture = TestBed.createComponent(EditBitstreamPageComponent);
comp = fixture.componentInstance;
fixture.detectChanges();
router = TestBed.inject(Router);
spyOn(router, 'navigate');
}); });
it('should set isIIIF to true', () => {
expect(comp.isIIIF).toBeTrue();
}); describe('on startup', () => {
it('should put the \"IIIF Label\" input to be shown', () => { let rawForm;
expect(comp.formLayout.iiifLabel.grid.host).toContain('col');
}); beforeEach(() => {
it('should put the \"IIIF Toc\" input to be shown', () => { rawForm = comp.formGroup.getRawValue();
expect(comp.formLayout.iiifToc.grid.host).toContain('col'); });
}); it('should set isIIIF to true', () => {
it('should put the \"IIIF width\" input to be shown', () => { expect(comp.isIIIF).toBeTrue();
expect(comp.formLayout.iiifWidth.grid.host).toContain('col'); });
}); it('should put the \"IIIF Label\" input to be shown', () => {
it('should put the \"IIIF Height\" input to be shown', () => { expect(comp.formLayout.iiifLabel.grid.host).toContain('col');
expect(comp.formLayout.iiifHeight.grid.host).toContain('col'); });
}); it('should put the \"IIIF Toc\" input to be shown', () => {
it('should fill in the iiif label', () => { expect(comp.formLayout.iiifToc.grid.host).toContain('col');
expect(rawForm.iiifLabelContainer.iiifLabel).toEqual('chapter one'); });
}); it('should put the \"IIIF width\" input to be shown', () => {
it('should fill in the iiif toc', () => { expect(comp.formLayout.iiifWidth.grid.host).toContain('col');
expect(rawForm.iiifTocContainer.iiifToc).toEqual('chapter one'); });
}); it('should put the \"IIIF Height\" input to be shown', () => {
it('should fill in the iiif width', () => { expect(comp.formLayout.iiifHeight.grid.host).toContain('col');
expect(rawForm.iiifWidthContainer.iiifWidth).toEqual('2400'); });
}); it('should fill in the iiif label', () => {
it('should fill in the iiif height', () => { expect(rawForm.iiifLabelContainer.iiifLabel).toEqual('chapter one');
expect(rawForm.iiifHeightContainer.iiifHeight).toEqual('2800'); });
it('should fill in the iiif toc', () => {
expect(rawForm.iiifTocContainer.iiifToc).toEqual('chapter one');
});
it('should fill in the iiif width', () => {
expect(rawForm.iiifWidthContainer.iiifWidth).toEqual('2400');
});
it('should fill in the iiif height', () => {
expect(rawForm.iiifHeightContainer.iiifHeight).toEqual('2800');
});
}); });
}); });
}); });