Skip to content

Commit 6d23762

Browse files
[DSC-1594] Updated the spec file related
1 parent 9a93fb2 commit 6d23762

1 file changed

Lines changed: 266 additions & 3 deletions

File tree

src/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.spec.ts

Lines changed: 266 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ let bundle;
5151
let comp: EditBitstreamPageComponent;
5252
let fixture: ComponentFixture<EditBitstreamPageComponent>;
5353

54-
describe('EditBitstreamPageComponent', () => {
54+
fdescribe('EditBitstreamPageComponent', () => {
5555

5656
const entries = [
5757
Object.assign(new VocabularyEntry(), {display: 'true', value: 'true' }),
@@ -67,8 +67,6 @@ describe('EditBitstreamPageComponent', () => {
6767
currentPrimary = bitstreamID;
6868
differentPrimary = '12345-abcde-54321-edcba';
6969

70-
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
71-
7270
allFormats = [
7371
Object.assign({
7472
id: '1',
@@ -155,6 +153,7 @@ describe('EditBitstreamPageComponent', () => {
155153
describe('EditBitstreamPageComponent no IIIF fields', () => {
156154

157155
beforeEach(waitForAsync(() => {
156+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
158157
bundle = {
159158
_links: {
160159
primaryBitstream: {
@@ -440,6 +439,7 @@ describe('EditBitstreamPageComponent', () => {
440439
const bundleName = 'ORIGINAL';
441440

442441
beforeEach(waitForAsync(() => {
442+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
443443

444444
bitstream = Object.assign(new Bitstream(), {
445445
metadata: {
@@ -571,6 +571,7 @@ describe('EditBitstreamPageComponent', () => {
571571
const bundleName = 'OTHERCONTENT';
572572

573573
beforeEach(waitForAsync(() => {
574+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
574575

575576
bitstream = Object.assign(new Bitstream(), {
576577
metadata: {
@@ -688,4 +689,266 @@ describe('EditBitstreamPageComponent', () => {
688689
});
689690
});
690691

692+
describe('EditBitstreamPageComponent with metadata hide', () => {
693+
694+
beforeEach(waitForAsync(() => {
695+
bundle = {
696+
_links: {
697+
primaryBitstream: {
698+
href: 'bundle-selflink'
699+
}
700+
},
701+
item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
702+
uuid: 'some-uuid',
703+
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
704+
return undefined;
705+
},
706+
}))
707+
};
708+
const bundleName = 'ORIGINAL';
709+
710+
bitstream = Object.assign(new Bitstream(), {
711+
uuid: bitstreamID,
712+
id: bitstreamID,
713+
metadata: {
714+
'dc.description': [
715+
{
716+
value: 'Bitstream description'
717+
}
718+
],
719+
'dc.title': [
720+
{
721+
value: 'Bitstream title'
722+
}
723+
],
724+
'dc.type': [
725+
{
726+
value: 'Logo'
727+
}
728+
],
729+
'bitstream.hide': [
730+
{
731+
value: 'false'
732+
}
733+
]
734+
},
735+
format: createSuccessfulRemoteDataObject$(selectedFormat),
736+
_links: {
737+
self: 'bitstream-selflink'
738+
},
739+
bundle: createSuccessfulRemoteDataObject$(bundle)
740+
});
741+
bitstreamService = jasmine.createSpyObj('bitstreamService', {
742+
findById: createSuccessfulRemoteDataObject$(bitstream),
743+
findByHref: createSuccessfulRemoteDataObject$(bitstream),
744+
update: createSuccessfulRemoteDataObject$(bitstream),
745+
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
746+
commitUpdates: {},
747+
patch: {}
748+
});
749+
bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', {
750+
findAll: createSuccessfulRemoteDataObject$(createPaginatedList(allFormats))
751+
});
752+
dsoNameService = jasmine.createSpyObj('dsoNameService', {
753+
getName: bundleName
754+
});
755+
756+
TestBed.configureTestingModule({
757+
imports: [TranslateModule.forRoot(), RouterTestingModule],
758+
declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective],
759+
providers: [
760+
{ provide: NotificationsService, useValue: notificationsService },
761+
{ provide: DynamicFormService, useValue: formService },
762+
{
763+
provide: ActivatedRoute,
764+
useValue: {
765+
data: observableOf({ bitstream: createSuccessfulRemoteDataObject(bitstream) }),
766+
snapshot: { queryParams: {} }
767+
}
768+
},
769+
{ provide: BitstreamDataService, useValue: bitstreamService },
770+
{ provide: DSONameService, useValue: dsoNameService },
771+
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatService },
772+
{ provide: PrimaryBitstreamService, useValue: primaryBitstreamService },
773+
{ provide: VocabularyService, useValue: mockVocabularyService},
774+
ChangeDetectorRef
775+
],
776+
schemas: [NO_ERRORS_SCHEMA]
777+
}).compileComponents();
778+
779+
}));
780+
describe('when there are vocabulary entries', () =>{
781+
beforeEach(() => {
782+
fixture = TestBed.createComponent(EditBitstreamPageComponent);
783+
comp = fixture.componentInstance;
784+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
785+
fixture.detectChanges();
786+
router = TestBed.inject(Router);
787+
spyOn(router, 'navigate');
788+
});
789+
let rawForm;
790+
beforeEach(() => {
791+
rawForm = comp.formGroup.getRawValue();
792+
});
793+
it('should have a select with value false', ()=>{
794+
expect(rawForm.hideContainer.hide).toEqual(bitstream.firstMetadataValue('bitstream.hide'));
795+
});
796+
it('should verify that hide model has the correct model with options arriving from entries', ()=>{
797+
expect(comp.hideModel).toBeDefined();
798+
expect(comp.hideModel.id).toBe('hide');
799+
expect(comp.hideModel.name).toBe('hide');
800+
expect(comp.hideModel.options.length).toBe(2);
801+
expect(comp.hideModel.options[0].label).toBe('true');
802+
expect(comp.hideModel.options[0].value).toBe('true');
803+
expect(comp.hideModel.options[1].label).toBe('false');
804+
expect(comp.hideModel.options[1].value).toBe('false');
805+
});
806+
});
807+
describe('when there no vocabulary entries', () =>{
808+
beforeEach(() => {
809+
fixture = TestBed.createComponent(EditBitstreamPageComponent);
810+
comp = fixture.componentInstance;
811+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])));
812+
fixture.detectChanges();
813+
router = TestBed.inject(Router);
814+
spyOn(router, 'navigate');
815+
});
816+
let rawForm;
817+
beforeEach(() => {
818+
rawForm = comp.formGroup.getRawValue();
819+
});
820+
it('should verify that form model has the correct model with options arriving from entries', ()=>{
821+
expect(comp.hideModel).toBeUndefined();
822+
expect(rawForm.hideContainer).toBeUndefined();
823+
});
824+
});
825+
});
826+
827+
describe('EditBitstreamPageComponent without metadata hide', () => {
828+
829+
beforeEach(waitForAsync(() => {
830+
bundle = {
831+
_links: {
832+
primaryBitstream: {
833+
href: 'bundle-selflink'
834+
}
835+
},
836+
item: createSuccessfulRemoteDataObject$(Object.assign(new Item(), {
837+
uuid: 'some-uuid',
838+
firstMetadataValue(keyOrKeys: string | string[], valueFilter?: MetadataValueFilter): string {
839+
return undefined;
840+
},
841+
}))
842+
};
843+
const bundleName = 'ORIGINAL';
844+
845+
bitstream = Object.assign(new Bitstream(), {
846+
uuid: bitstreamID,
847+
id: bitstreamID,
848+
metadata: {
849+
'dc.description': [
850+
{
851+
value: 'Bitstream description'
852+
}
853+
],
854+
'dc.title': [
855+
{
856+
value: 'Bitstream title'
857+
}
858+
],
859+
'dc.type': [
860+
{
861+
value: 'Logo'
862+
}
863+
]
864+
},
865+
format: createSuccessfulRemoteDataObject$(selectedFormat),
866+
_links: {
867+
self: 'bitstream-selflink'
868+
},
869+
bundle: createSuccessfulRemoteDataObject$(bundle)
870+
});
871+
bitstreamService = jasmine.createSpyObj('bitstreamService', {
872+
findById: createSuccessfulRemoteDataObject$(bitstream),
873+
findByHref: createSuccessfulRemoteDataObject$(bitstream),
874+
update: createSuccessfulRemoteDataObject$(bitstream),
875+
updateFormat: createSuccessfulRemoteDataObject$(bitstream),
876+
commitUpdates: {},
877+
patch: {}
878+
});
879+
bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', {
880+
findAll: createSuccessfulRemoteDataObject$(createPaginatedList(allFormats))
881+
});
882+
dsoNameService = jasmine.createSpyObj('dsoNameService', {
883+
getName: bundleName
884+
});
885+
886+
TestBed.configureTestingModule({
887+
imports: [TranslateModule.forRoot(), RouterTestingModule],
888+
declarations: [EditBitstreamPageComponent, FileSizePipe, VarDirective],
889+
providers: [
890+
{ provide: NotificationsService, useValue: notificationsService },
891+
{ provide: DynamicFormService, useValue: formService },
892+
{
893+
provide: ActivatedRoute,
894+
useValue: {
895+
data: observableOf({ bitstream: createSuccessfulRemoteDataObject(bitstream) }),
896+
snapshot: { queryParams: {} }
897+
}
898+
},
899+
{ provide: BitstreamDataService, useValue: bitstreamService },
900+
{ provide: DSONameService, useValue: dsoNameService },
901+
{ provide: BitstreamFormatDataService, useValue: bitstreamFormatService },
902+
{ provide: PrimaryBitstreamService, useValue: primaryBitstreamService },
903+
{ provide: VocabularyService, useValue: mockVocabularyService},
904+
ChangeDetectorRef
905+
],
906+
schemas: [NO_ERRORS_SCHEMA]
907+
}).compileComponents();
908+
909+
}));
910+
describe('when there are no vocabulary entries', () =>{
911+
beforeEach(() => {
912+
fixture = TestBed.createComponent(EditBitstreamPageComponent);
913+
comp = fixture.componentInstance;
914+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])));
915+
fixture.detectChanges();
916+
router = TestBed.inject(Router);
917+
spyOn(router, 'navigate');
918+
});
919+
let rawForm;
920+
beforeEach(() => {
921+
rawForm = comp.formGroup.getRawValue();
922+
});
923+
it('should have a select with 0 elements', ()=>{
924+
expect(rawForm.hideContainer).toBeUndefined();
925+
expect(comp.hideModel).toBeUndefined();
926+
});
927+
});
928+
describe('when there are vocabulary entries', () =>{
929+
beforeEach(() => {
930+
fixture = TestBed.createComponent(EditBitstreamPageComponent);
931+
comp = fixture.componentInstance;
932+
mockVocabularyService.getVocabularyEntries.and.returnValue(createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), entries)));
933+
fixture.detectChanges();
934+
router = TestBed.inject(Router);
935+
spyOn(router, 'navigate');
936+
});
937+
let rawForm;
938+
beforeEach(() => {
939+
rawForm = comp.formGroup.getRawValue();
940+
});
941+
it('should have a select with 2 elements', ()=>{
942+
expect(rawForm.hideContainer).toBeDefined();
943+
expect(comp.hideModel).toBeDefined();
944+
expect(comp.hideModel.id).toBe('hide');
945+
expect(comp.hideModel.name).toBe('hide');
946+
expect(comp.hideModel.options.length).toBe(2);
947+
expect(comp.hideModel.options[0].label).toBe('true');
948+
expect(comp.hideModel.options[0].value).toBe('true');
949+
expect(comp.hideModel.options[1].label).toBe('false');
950+
expect(comp.hideModel.options[1].value).toBe('false');
951+
});
952+
});
953+
});
691954
});

0 commit comments

Comments
 (0)