@@ -51,7 +51,7 @@ let bundle;
5151let comp : EditBitstreamPageComponent ;
5252let 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