@@ -3098,56 +3098,133 @@ describe('utils', () => {
30983098 describe ( 'setEnforceSettingsConfig' , ( ) => {
30993099 it ( 'the video config should be assigned to bsconfig run_settings config' , ( ) => {
31003100 let bsConfig = {
3101- run_settings : { video_config : { video :true , videoUploadOnPasses :true } } ,
3101+ run_settings : {
3102+ video_config : { video :true , videoUploadOnPasses :true } ,
3103+ cypressProjectDir : 'cypressProjectDir' ,
3104+ } ,
31023105 } ;
31033106 let args = {
31043107 config : 'video=true,videoUploadOnPasses=true'
31053108 }
3106- utils . setEnforceSettingsConfig ( bsConfig ) ;
3109+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
31073110 expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
31083111 } ) ;
3109- it ( 'the specPattern config should be assigned as strings for single string to bsconfig run_settings config' , ( ) => {
3112+ it ( 'the specPattern config should be assigned as array for single spec string to bsconfig run_settings config' , ( ) => {
31103113 let bsConfig = {
3111- run_settings : { specs : 'somerandomspecs' , cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' } ,
3114+ run_settings : {
3115+ specs : 'somerandomspecs' ,
3116+ cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' ,
3117+ cypressProjectDir : 'cypressProjectDir' ,
3118+ } ,
31123119 } ;
31133120 let args = {
3114- config : 'video=false,videoUploadOnPasses=false,specPattern=somerandomspecs'
3121+ exclude : "" ,
3122+ config : 'video=false,videoUploadOnPasses=false,specPattern=["somerandomspecs"]'
31153123 }
3116- utils . setEnforceSettingsConfig ( bsConfig ) ;
3124+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
31173125 expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
31183126 } ) ;
31193127 it ( 'the specPattern config should be assigned as array for multiple spec strings to bsconfig run_settings config' , ( ) => {
31203128 let bsConfig = {
3121- run_settings : { specs : 'somerandomspecs1,somerandomspecs2' , cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' } ,
3129+ run_settings : {
3130+ specs : 'somerandomspecs1,somerandomspecs2' ,
3131+ cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' ,
3132+ cypressProjectDir : 'cypressProjectDir' ,
3133+ } ,
31223134 } ;
31233135 let args = {
3136+ exclude : "" ,
31243137 config : 'video=false,videoUploadOnPasses=false,specPattern=["somerandomspecs1","somerandomspecs2"]'
31253138 }
3126- utils . setEnforceSettingsConfig ( bsConfig ) ;
3139+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
3140+ expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
3141+ } ) ;
3142+ it ( 'the specPattern config should not be assigned just on the basis of "," as array for single spec string to bsconfig run_settings config' , ( ) => {
3143+ let bsConfig = {
3144+ run_settings : {
3145+ specs : 'folders/{sample1,sample2}/somerandomspecs' ,
3146+ cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' ,
3147+ cypressProjectDir : 'cypressProjectDir' ,
3148+ } ,
3149+ } ;
3150+ let args = {
3151+ exclude : "" ,
3152+ config : 'video=false,videoUploadOnPasses=false,specPattern=["folders/{sample1,sample2}/somerandomspecs"]'
3153+ }
3154+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
3155+ expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
3156+ } ) ;
3157+ it ( 'the specPattern config should not be assigned just on the basis of "," as array for multiple spec strings to bsconfig run_settings config' , ( ) => {
3158+ let bsConfig = {
3159+ run_settings : {
3160+ specs : 'folders/{sample1,sample2}/somerandomspecs,folders2/sample3/somerandomspecs2' ,
3161+ cypressTestSuiteType : 'CYPRESS_V10_AND_ABOVE_TYPE' ,
3162+ cypressProjectDir : 'cypressProjectDir' ,
3163+ } ,
3164+ } ;
3165+ let args = {
3166+ exclude : "" ,
3167+ config : 'video=false,videoUploadOnPasses=false,specPattern=["folders/{sample1,sample2}/somerandomspecs","folders2/sample3/somerandomspecs2"]'
3168+ }
3169+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
31273170 expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
31283171 } ) ;
31293172 it ( 'the testFiles config should be assigned to bsconfig run_settings config' , ( ) => {
31303173 let bsConfig = {
31313174 run_settings : { specs : 'somerandomspecs' , cypressTestSuiteType : 'CYPRESS_V9_AND_OLDER_TYPE' } ,
31323175 } ;
31333176 let args = {
3134- config : 'video=false,videoUploadOnPasses=false'
3177+ config : 'video=false,videoUploadOnPasses=false' ,
3178+ cypressProjectDir : 'cypressProjectDir' ,
31353179 }
3136- utils . setEnforceSettingsConfig ( bsConfig ) ;
3180+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
31373181 expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
31383182 } ) ;
31393183 it ( 'the baseUrl config should be assigned to bsconfig run_settings config' , ( ) => {
31403184 let bsConfig = {
3141- run_settings : { baseUrl : 'http://localhost:8080' } ,
3185+ run_settings : {
3186+ baseUrl : 'http://localhost:8080' ,
3187+ cypressProjectDir : 'cypressProjectDir' ,
3188+ } ,
31423189 } ;
31433190 let args = {
31443191 config : 'video=false,videoUploadOnPasses=false,baseUrl=http://localhost:8080'
31453192 }
3146- utils . setEnforceSettingsConfig ( bsConfig ) ;
3193+ utils . setEnforceSettingsConfig ( bsConfig , args ) ;
31473194 expect ( args . config ) . to . be . eql ( bsConfig . run_settings . config ) ;
31483195 } ) ;
31493196 } ) ;
31503197
3198+ describe ( 'splitStringByCharButIgnoreIfWithinARange' , ( ) => {
3199+ it ( 'should return null if string is not provided' , ( ) => {
3200+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( ) ) . to . be . eql ( null ) ;
3201+ } ) ;
3202+
3203+ it ( 'should return null if splitChar is not provided' , ( ) => {
3204+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some" ) ) . to . be . eql ( null ) ;
3205+ } ) ;
3206+
3207+ it ( 'should return splitted string even if leftLimiter and rightLimiter is not provided' , ( ) => {
3208+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some,random,text" , "," ) ) . to . be . eql ( [ "some" , "random" , "text" ] ) ;
3209+ } ) ;
3210+
3211+ it ( 'should return splitted string even if leftLimiter is provided but rightLimiter is not provided' , ( ) => {
3212+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some,random,{text,here},and,here" , "," , "{" ) ) . to . be . eql ( [ "some" , "random" , "{text" , "here}" , "and" , "here" ] ) ;
3213+ } ) ;
3214+
3215+ it ( 'should return splitted string even if leftLimiter is not provided but rightLimiter is provided' , ( ) => {
3216+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some,random,{text,here},and,here" , "," , null , "}" ) ) . to . be . eql ( [ "some" , "random" , "{text" , "here}" , "and" , "here" ] ) ;
3217+ } ) ;
3218+
3219+ it ( 'should return splitted string and ignore splitting if splitChar is withing the leftLimiter and rightLimiter' , ( ) => {
3220+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some,random,{text,here},and,here" , "," , "{" , "}" ) ) . to . be . eql ( [ "some" , "random" , "{text,here}" , "and" , "here" ] ) ;
3221+ } ) ;
3222+
3223+ it ( 'should return splitted string and ignore splitting if splitChar is withing the leftLimiter and rightLimiter' , ( ) => {
3224+ expect ( utils . splitStringByCharButIgnoreIfWithinARange ( "some,random,{text,here}" , "," , "{" , "}" ) ) . to . be . eql ( [ "some" , "random" , "{text,here}" ] ) ;
3225+ } ) ;
3226+ } ) ;
3227+
31513228 describe ( 'generateUniqueHash' , ( ) => {
31523229 beforeEach ( ( ) => {
31533230 let interfaceList = {
0 commit comments