@@ -29,14 +29,14 @@ describe('Command: install', () => {
2929 } )
3030
3131 it ( 'should log out when an unknown installation type is passed' , async ( ) => {
32- await installCmd . handler ( { type : 'foobar' } )
32+ await installCmd . handler ( { type : 'foobar' , config : './wdio.conf.js' } )
3333
3434 expect ( console . log ) . toHaveBeenCalled ( )
3535 expect ( console . log ) . toHaveBeenCalledWith ( 'Type foobar is not supported.' )
3636 } )
3737
3838 it ( 'should log out when unknown package name is used' , async ( ) => {
39- await installCmd . handler ( { type : 'service' , name : 'foobar' } )
39+ await installCmd . handler ( { type : 'service' , name : 'foobar' , config : './wdio.conf.js' } )
4040
4141 expect ( console . log ) . toHaveBeenCalled ( )
4242 expect ( console . log ) . toHaveBeenCalledWith ( 'foobar is not a supported service.' )
@@ -46,7 +46,7 @@ describe('Command: install', () => {
4646 jest . spyOn ( utils , 'missingConfigurationPrompt' ) . mockImplementation ( ( ) => Promise . reject ( ) )
4747 fs . existsSync . mockReturnValue ( false )
4848
49- await installCmd . handler ( { type : 'service' , name : 'chromedriver' } )
49+ await installCmd . handler ( { type : 'service' , name : 'chromedriver' , config : './wdio.conf.js' } )
5050
5151 expect ( utils . missingConfigurationPrompt ) . toHaveBeenCalledWith ( 'install' , `Cannot install packages without a WebdriverIO configuration.
5252You can create one by running 'wdio config'` , undefined )
@@ -56,7 +56,7 @@ You can create one by running 'wdio config'`, undefined)
5656 findInConfigMock . mockReturnValue ( [ 'chromedriver' ] )
5757 fs . existsSync . mockReturnValue ( true )
5858
59- await installCmd . handler ( { type : 'service' , name : 'chromedriver' } )
59+ await installCmd . handler ( { type : 'service' , name : 'chromedriver' , config : './wdio.conf.js' } )
6060
6161 expect ( console . log ) . toHaveBeenCalledWith ( 'The service chromedriver is already part of your configuration.' )
6262 } )
@@ -67,7 +67,22 @@ You can create one by running 'wdio config'`, undefined)
6767 fs . readFileSync . mockReturnValue ( 'module.config = {}' )
6868 yarnInstall . mockImplementation ( ( ) => ( { status : 0 } ) )
6969
70- await installCmd . handler ( { type : 'service' , name : 'chromedriver' } )
70+ await installCmd . handler ( { type : 'service' , name : 'chromedriver' , config : './wdio.conf.js' } )
71+
72+ expect ( console . log ) . toHaveBeenCalledWith ( 'Installing "wdio-chromedriver-service".' )
73+ expect ( console . log ) . toHaveBeenCalledWith ( 'Package "wdio-chromedriver-service" installed successfully.' )
74+ expect ( utils . replaceConfig ) . toHaveBeenCalled ( )
75+ expect ( fs . writeFileSync ) . toHaveBeenCalled ( )
76+ expect ( console . log ) . toHaveBeenCalledWith ( 'Your wdio.conf.js file has been updated.' )
77+ expect ( process . exit ) . toHaveBeenCalledWith ( 0 )
78+ } )
79+ it ( 'allows for custom config location' , async ( ) => {
80+ findInConfigMock . mockReturnValue ( [ '' ] )
81+ fs . existsSync . mockReturnValue ( true )
82+ fs . readFileSync . mockReturnValue ( 'module.config = {}' )
83+ yarnInstall . mockImplementation ( ( ) => ( { status : 0 } ) )
84+
85+ await installCmd . handler ( { type : 'service' , name : 'chromedriver' , config : './path/to/wdio.conf.js' } )
7186
7287 expect ( console . log ) . toHaveBeenCalledWith ( 'Installing "wdio-chromedriver-service".' )
7388 expect ( console . log ) . toHaveBeenCalledWith ( 'Package "wdio-chromedriver-service" installed successfully.' )
@@ -83,7 +98,7 @@ You can create one by running 'wdio config'`, undefined)
8398 yarnInstall . mockImplementation ( ( ) => ( { status : 1 , stderr : 'test error' } ) )
8499 jest . spyOn ( console , 'error' )
85100
86- await installCmd . handler ( { type : 'service' , name : 'chromedriver' } )
101+ await installCmd . handler ( { type : 'service' , name : 'chromedriver' , config : './wdio.conf.js' } )
87102
88103 expect ( console . error ) . toHaveBeenCalledWith ( 'Error installing packages' , 'test error' )
89104 expect ( process . exit ) . toHaveBeenCalledWith ( 1 )
0 commit comments