@@ -358,7 +358,7 @@ describe('utils', () => {
358358 let args = testObjects . initSampleArgs ;
359359
360360 it ( 'should call sendUsageReport' , ( ) => {
361- sendUsageReportStub = sandbox
361+ let sendUsageReportStub = sandbox
362362 . stub ( utils , 'sendUsageReport' )
363363 . callsFake ( function ( ) {
364364 return 'end' ;
@@ -508,11 +508,10 @@ describe('utils', () => {
508508 } ) ;
509509
510510 describe ( 'setTestEnvs' , ( ) => {
511- it ( 'sets env only from args' , ( ) => {
511+ it ( 'set env only from args' , ( ) => {
512512 let argsEnv = 'env3=value3, env4=value4' ;
513513 let bsConfig = {
514514 run_settings : {
515- env : 'env1=value1, env2=value2' ,
516515 } ,
517516 } ;
518517 let args = {
@@ -523,7 +522,51 @@ describe('utils', () => {
523522 expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env3=value3,env4=value4' ) ;
524523 } ) ;
525524
526- it ( 'sets env from args without spaces in it' , ( ) => {
525+ it ( 'set env only from browserstack.json env param' , ( ) => {
526+ let bsConfig = {
527+ run_settings : {
528+ env : 'env1=value1, env2=value2' ,
529+ } ,
530+ } ;
531+ let args = {
532+ env : null
533+ } ;
534+
535+ utils . setTestEnvs ( bsConfig , args ) ;
536+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value1,env2=value2' ) ;
537+ } ) ;
538+
539+ it ( 'merges env from args and browserstack.json env param' , ( ) => {
540+ let argsEnv = 'env3=value3, env4=value4' ;
541+ let bsConfig = {
542+ run_settings : {
543+ env : 'env1=value1, env2=value2' ,
544+ } ,
545+ } ;
546+ let args = {
547+ env : argsEnv ,
548+ } ;
549+
550+ utils . setTestEnvs ( bsConfig , args ) ;
551+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value1,env2=value2,env3=value3,env4=value4' ) ;
552+ } ) ;
553+
554+ it ( 'merges env from args and browserstack.json env param but give preceedence to args' , ( ) => {
555+ let argsEnv = 'env1=value0, env4=value4' ;
556+ let bsConfig = {
557+ run_settings : {
558+ env : 'env1=value1, env2=value2' ,
559+ } ,
560+ } ;
561+ let args = {
562+ env : argsEnv ,
563+ } ;
564+
565+ utils . setTestEnvs ( bsConfig , args ) ;
566+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value0,env2=value2,env4=value4' ) ;
567+ } ) ;
568+
569+ it ( 'handle spaces passed while specifying env' , ( ) => {
527570 let argsEnv = 'env3=value3 , env4=value4' ;
528571 let bsConfig = {
529572 run_settings : {
@@ -535,22 +578,64 @@ describe('utils', () => {
535578 } ;
536579
537580 utils . setTestEnvs ( bsConfig , args ) ;
538- expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env3=value3,env4=value4' ) ;
581+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value1,env2=value2, env3=value3,env4=value4' ) ;
539582 } ) ;
540583
541- it ( 'does not set env if not specified in args' , ( ) => {
584+ it ( 'set vars passed in system_env_vars' , ( ) => {
585+ process . env . ENV1 = 'env1' ;
586+ process . env . ENV2 = 'env2'
542587 let argsEnv = 'env3=value3 , env4=value4' ;
543588 let bsConfig = {
544589 run_settings : {
545590 env : 'env1=value1 , env2=value2' ,
591+ system_env_vars : [ 'ENV1' , 'ENV2' ]
592+ } ,
593+ } ;
594+ let args = {
595+ env : argsEnv ,
596+ } ;
597+
598+ utils . setTestEnvs ( bsConfig , args ) ;
599+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value1,env2=value2,ENV1=env1,ENV2=env2,env3=value3,env4=value4' ) ;
600+ delete process . env . ENV1 ;
601+ delete process . env . ENV2 ;
602+ } ) ;
603+
604+ it ( 'set vars defined on machine as CYPRESS_ or cypress_' , ( ) => {
605+ process . env . CYPRESS_TEST_1 = 'env1' ;
606+ process . env . cypress_test_2 = 'env2'
607+ let bsConfig = {
608+ run_settings : {
609+ env : null
546610 } ,
547611 } ;
548612 let args = {
549613 env : null ,
550614 } ;
551615
552616 utils . setTestEnvs ( bsConfig , args ) ;
553- expect ( bsConfig . run_settings . env ) . to . be . eq ( null ) ;
617+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'CYPRESS_TEST_1=env1,cypress_test_2=env2' ) ;
618+ delete process . env . CYPRESS_TEST_1 ;
619+ delete process . env . cypress_test_2 ;
620+ } ) ;
621+
622+ it ( 'set vars defined on machine as CYPRESS_ or cypress_ with args and env set in browserstack.json' , ( ) => {
623+ process . env . CYPRESS_TEST_1 = 'env1' ;
624+ process . env . cypress_test_2 = 'env2'
625+ let argsEnv = 'env3=value3 , env4=value4' ;
626+ let bsConfig = {
627+ run_settings : {
628+ env : 'env1=value1 , env2=value2'
629+ } ,
630+ } ;
631+ let args = {
632+ env : argsEnv ,
633+ } ;
634+
635+ utils . setTestEnvs ( bsConfig , args ) ;
636+ expect ( bsConfig . run_settings . env ) . to . be . eq ( 'env1=value1,env2=value2,CYPRESS_TEST_1=env1,cypress_test_2=env2,env3=value3,env4=value4' ) ;
637+ delete process . env . CYPRESS_TEST_1 ;
638+ delete process . env . cypress_test_2 ;
554639 } ) ;
555640 } ) ;
556641
0 commit comments