Skip to content

Commit 169a684

Browse files
committed
add validations for command.expose
1 parent f2a5bab commit 169a684

File tree

5 files changed

+33
-1
lines changed

5 files changed

+33
-1
lines changed

lib/bashly/config_validator.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ def assert_command(key, value)
117117

118118
assert_boolean "#{key}.private", value['private']
119119
assert_boolean "#{key}.default", value['default']
120+
assert_boolean "#{key}.expose", value['expose']
120121
assert_version "#{key}.version", value['version']
121122
assert_catch_all "#{key}.catch_all", value['catch_all']
122123
assert_string_or_array "#{key}.alias", value['alias']
@@ -141,11 +142,16 @@ def assert_command(key, value)
141142
refute repeatable_arg, "#{key}.catch_all makes no sense with repeatable arg (#{repeatable_arg})"
142143
end
143144

145+
if value['expose']
146+
assert value['commands'], "#{key}.expose makes no sense without commands"
147+
end
148+
144149
if key == "root"
145150
refute value['alias'], "#{key}.alias makes no sense"
146151
refute value['group'], "#{key}.group makes no sense"
147152
refute value['default'], "#{key}.default makes no sense"
148153
refute value['private'], "#{key}.private makes no sense"
154+
refute value['expose'], "#{key}.expose makes no sense"
149155
else
150156
refute value['version'], "#{key}.version makes no sense"
151157
refute value['extensible'], "#{key}.extensible makes no sense"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#<Bashly::ConfigurationError: root.commands[0].expose makes no sense without commands>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#<Bashly::ConfigurationError: root.commands[0].expose must be a boolean>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#<Bashly::ConfigurationError: root.expose makes no sense>

spec/fixtures/script/validations.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,23 @@
3636
help: catch_all.required should be boolean
3737
required: 1
3838

39+
:command_expose_not_boolean:
40+
name: invalid
41+
help: expose should be boolean
42+
commands:
43+
- name: config
44+
expose: 1
45+
commands:
46+
- name: edit
47+
- name: show
48+
49+
:command_expose_no_commands:
50+
name: invalid
51+
help: expose without commands makes no sense
52+
commands:
53+
- name: config
54+
expose: true
55+
3956
:command_extensible:
4057
name: invalid
4158
help: extensible shuold be a boolean or string
@@ -82,7 +99,6 @@
8299
- name: api_key
83100
required: 1
84101

85-
86102
:flag_long:
87103
name: invalid
88104
help: the long flag is not in the form of --force
@@ -176,6 +192,13 @@
176192
help: root cannot have default
177193
default: true
178194

195+
:root_expose:
196+
name: invalid
197+
help: root cannot have expose
198+
expose: true
199+
commands:
200+
- name: config
201+
179202
:root_private:
180203
name: invalid
181204
help: root cannot have private

0 commit comments

Comments
 (0)