Install selected modules
This commit is contained in:
82
spec/generateModuleOptions_spec.sh
Normal file
82
spec/generateModuleOptions_spec.sh
Normal file
@@ -0,0 +1,82 @@
|
||||
Describe 'generateModuleOptions'
|
||||
Include ./install.sh
|
||||
|
||||
It 'does nothing if answers array is empty'
|
||||
declare -A answers=()
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq ''
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'does nothing if answers does not contain module answers'
|
||||
declare -A answers=('some-module_name' 'answer')
|
||||
mod='module/my-module'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq ''
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'prefixes single char option names with a dash'
|
||||
declare -A answers=('mymodule_n' 'my name')
|
||||
mod='mymodule'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '-n my name'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'does not prefix single char option name with dash if it is already a dash'
|
||||
declare -A answers=('mymodule_-' 'my name')
|
||||
mod='mymodule'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '- my name'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'prefixes multi char option names with double dash'
|
||||
declare -A answers=('mymodule_your-name' 'my name')
|
||||
mod='mymodule'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '--your-name my name'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'does not prefix multi char option names with double dash if it starts with a dash'
|
||||
declare -A answers=('mymodule_-your-name' 'my name')
|
||||
mod='mymodule'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '-your-name my name'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'works with modules that contains slashes'
|
||||
declare -A answers=('/some/dir/mymodule_your-name' 'my name')
|
||||
mod='/some/dir/mymodule'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '--your-name my name'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'works with modules that contains spaces'
|
||||
declare -A answers=('/some/dir with spaces/mymodule with spaces_your-name' 'my name')
|
||||
mod='/some/dir with spaces/mymodule with spaces'
|
||||
moduleOptions=()
|
||||
When call generateModuleOptions
|
||||
The output should eq ''
|
||||
The variable 'moduleOptions' should eq '--your-name my name'
|
||||
The status should be success
|
||||
End
|
||||
End
|
||||
36
spec/installModules_spec.sh
Normal file
36
spec/installModules_spec.sh
Normal file
@@ -0,0 +1,36 @@
|
||||
Describe 'installModules'
|
||||
Include ./install.sh
|
||||
output=()
|
||||
runModule() { output=("$@") }
|
||||
|
||||
It 'does nothing if modules array is empty'
|
||||
declare -A modulesToInstall=() answers=()
|
||||
called=false
|
||||
generateModuleOptions() { called=true }
|
||||
When call installModules
|
||||
The output should eq ''
|
||||
The variable 'called' should eq 'false'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'calls the module without options if answers is empty'
|
||||
declare -A answers=()
|
||||
modulesToInstall=('/modules/my module')
|
||||
When call installModules
|
||||
The output should eq ''
|
||||
The variable 'output[1]' should eq '/modules/my module'
|
||||
The status should be success
|
||||
End
|
||||
|
||||
It 'calls the module with given answers as options'
|
||||
declare -A answers=('/modules/my module_name' 'hercules')
|
||||
modulesToInstall=('/modules/my module')
|
||||
When call installModules
|
||||
The output should eq ''
|
||||
The variable 'output' should eq '/modules/my module --name hercules'
|
||||
The variable 'output[1]' should eq '/modules/my module'
|
||||
The variable 'output[2]' should eq '--name'
|
||||
The variable 'output[3]' should eq 'hercules'
|
||||
The status should be success
|
||||
End
|
||||
End
|
||||
Reference in New Issue
Block a user