@@ -905,6 +905,153 @@ describe('SFProjectMigrations', () => {
905905 ] ) ;
906906 } ) ;
907907 } ) ;
908+
909+ describe ( 'version 27' , ( ) => {
910+ it ( 'adds empty arrays if preTranslate is false' , async ( ) => {
911+ const env = new TestEnvironment ( 26 ) ;
912+ const conn = env . server . connect ( ) ;
913+ await createDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' , {
914+ translateConfig : { preTranslate : false , draftConfig : { } }
915+ } ) ;
916+ let projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
917+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toBeUndefined ( ) ;
918+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toBeUndefined ( ) ;
919+
920+ await env . server . migrateIfNecessary ( ) ;
921+
922+ projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
923+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toEqual ( [ ] ) ;
924+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toEqual ( [ ] ) ;
925+ } ) ;
926+
927+ it ( 'adds empty arrays if preTranslate is true but sources were disabled' , async ( ) => {
928+ const env = new TestEnvironment ( 26 ) ;
929+ const conn = env . server . connect ( ) ;
930+ await createDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' , {
931+ translateConfig : {
932+ preTranslate : true ,
933+ draftConfig : {
934+ alternateTrainingSource : { projectRef : 'project02' } ,
935+ alternateTrainingSourceEnabled : false ,
936+ alternateSource : { projectRef : 'project03' } ,
937+ alternateSourceEnabled : false ,
938+ additionalTrainingSource : { projectRef : 'project04' } ,
939+ additionalTrainingSourceEnabled : false
940+ }
941+ }
942+ } ) ;
943+ let projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
944+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toBeUndefined ( ) ;
945+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toBeUndefined ( ) ;
946+
947+ await env . server . migrateIfNecessary ( ) ;
948+
949+ projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
950+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toEqual ( [ ] ) ;
951+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toEqual ( [ ] ) ;
952+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSource ) . toBeUndefined ( ) ;
953+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSourceEnabled ) . toBeUndefined ( ) ;
954+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSource ) . toBeUndefined ( ) ;
955+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSourceEnabled ) . toBeUndefined ( ) ;
956+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSource ) . toBeUndefined ( ) ;
957+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSourceEnabled ) . toBeUndefined ( ) ;
958+ } ) ;
959+
960+ it ( 'adds empty arrays if preTranslate is true and sources are enabled but undefined' , async ( ) => {
961+ const env = new TestEnvironment ( 26 ) ;
962+ const conn = env . server . connect ( ) ;
963+ await createDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' , {
964+ translateConfig : {
965+ preTranslate : true ,
966+ draftConfig : {
967+ alternateTrainingSourceEnabled : true ,
968+ alternateSourceEnabled : true ,
969+ additionalTrainingSourceEnabled : true
970+ }
971+ }
972+ } ) ;
973+ let projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
974+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toBeUndefined ( ) ;
975+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toBeUndefined ( ) ;
976+
977+ await env . server . migrateIfNecessary ( ) ;
978+
979+ projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
980+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toEqual ( [ ] ) ;
981+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toEqual ( [ ] ) ;
982+ } ) ;
983+
984+ it ( 'adds source to both arrays if preTranslate is true but sources were disabled' , async ( ) => {
985+ const env = new TestEnvironment ( 26 ) ;
986+ const conn = env . server . connect ( ) ;
987+ await createDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' , {
988+ translateConfig : {
989+ preTranslate : true ,
990+ draftConfig : {
991+ alternateTrainingSource : { projectRef : 'project02' } ,
992+ alternateTrainingSourceEnabled : false ,
993+ alternateSource : { projectRef : 'project03' } ,
994+ alternateSourceEnabled : false ,
995+ additionalTrainingSource : { projectRef : 'project04' } ,
996+ additionalTrainingSourceEnabled : false
997+ } ,
998+ source : { projectRef : 'project05' }
999+ }
1000+ } ) ;
1001+ let projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
1002+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toBeUndefined ( ) ;
1003+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toBeUndefined ( ) ;
1004+
1005+ await env . server . migrateIfNecessary ( ) ;
1006+
1007+ projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
1008+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toEqual ( [ { projectRef : 'project05' } ] ) ;
1009+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toEqual ( [ { projectRef : 'project05' } ] ) ;
1010+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSource ) . toBeUndefined ( ) ;
1011+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSourceEnabled ) . toBeUndefined ( ) ;
1012+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSource ) . toBeUndefined ( ) ;
1013+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSourceEnabled ) . toBeUndefined ( ) ;
1014+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSource ) . toBeUndefined ( ) ;
1015+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSourceEnabled ) . toBeUndefined ( ) ;
1016+ } ) ;
1017+
1018+ it ( 'adds sources to the appropriate arrays if preTranslate is true and sources are configured' , async ( ) => {
1019+ const env = new TestEnvironment ( 26 ) ;
1020+ const conn = env . server . connect ( ) ;
1021+ await createDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' , {
1022+ translateConfig : {
1023+ preTranslate : true ,
1024+ draftConfig : {
1025+ alternateTrainingSource : { projectRef : 'project02' } ,
1026+ alternateTrainingSourceEnabled : true ,
1027+ alternateSource : { projectRef : 'project03' } ,
1028+ alternateSourceEnabled : true ,
1029+ additionalTrainingSource : { projectRef : 'project04' } ,
1030+ additionalTrainingSourceEnabled : true
1031+ } ,
1032+ source : { projectRef : 'project05' }
1033+ }
1034+ } ) ;
1035+ let projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
1036+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toBeUndefined ( ) ;
1037+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toBeUndefined ( ) ;
1038+
1039+ await env . server . migrateIfNecessary ( ) ;
1040+
1041+ projectDoc = await fetchDoc ( conn , SF_PROJECTS_COLLECTION , 'project01' ) ;
1042+ expect ( projectDoc . data . translateConfig . draftConfig . draftingSources ) . toEqual ( [ { projectRef : 'project03' } ] ) ;
1043+ expect ( projectDoc . data . translateConfig . draftConfig . trainingSources ) . toEqual ( [
1044+ { projectRef : 'project02' } ,
1045+ { projectRef : 'project04' }
1046+ ] ) ;
1047+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSource ) . toBeUndefined ( ) ;
1048+ expect ( projectDoc . data . translateConfig . draftConfig . alternateTrainingSourceEnabled ) . toBeUndefined ( ) ;
1049+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSource ) . toBeUndefined ( ) ;
1050+ expect ( projectDoc . data . translateConfig . draftConfig . alternateSourceEnabled ) . toBeUndefined ( ) ;
1051+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSource ) . toBeUndefined ( ) ;
1052+ expect ( projectDoc . data . translateConfig . draftConfig . additionalTrainingSourceEnabled ) . toBeUndefined ( ) ;
1053+ } ) ;
1054+ } ) ;
9081055} ) ;
9091056
9101057class TestEnvironment {
0 commit comments