Skip to content

Commit d954e57

Browse files
author
Alex Evanczuk
authored
Fix bug with architecture validator if layers not set (#13)
* Fix bug with architecture validator * Fix bug with architecture validator
1 parent e1a1a1f commit d954e57

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ GIT
1717
PATH
1818
remote: .
1919
specs:
20-
packwerk-extensions (0.0.8)
20+
packwerk-extensions (0.0.9)
2121
packwerk (>= 2.2.1)
2222
rails
2323
sorbet-runtime

lib/packwerk/architecture/validator.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,21 @@ def check_layer_setting(package, config_file_path)
9191
params(config_file_path: String, setting: T.untyped).returns(Result)
9292
end
9393
def check_enforce_architecture_setting(config_file_path, setting)
94+
activated_value = [true, 'strict'].include?(setting)
9495
valid_value = [true, nil, false, 'strict'].include?(setting)
9596
layers_set = layers.names.any?
96-
if valid_value && layers_set
97-
Result.new(ok: true)
98-
elsif valid_value
97+
if !valid_value
9998
Result.new(
10099
ok: false,
101-
error_value: "Cannot set 'enforce_architecture' option in #{config_file_path.inspect} until `architectural_layers` have been specified in `packwerk.yml`"
100+
error_value: "Invalid 'enforce_architecture' option in #{config_file_path.inspect}: #{setting.inspect}"
102101
)
103-
else
102+
elsif activated_value && !layers_set
104103
Result.new(
105104
ok: false,
106-
error_value: "Invalid 'enforce_architecture' option in #{config_file_path.inspect}: #{setting.inspect}"
105+
error_value: "Cannot set 'enforce_architecture' option in #{config_file_path.inspect} until `architectural_layers` have been specified in `packwerk.yml`"
107106
)
107+
else
108+
Result.new(ok: true)
108109
end
109110
end
110111
end

packwerk-extensions.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |spec|
22
spec.name = 'packwerk-extensions'
3-
spec.version = '0.0.8'
3+
spec.version = '0.0.9'
44
spec.authors = ['Gusto Engineers']
55
spec.email = ['dev@gusto.com']
66

test/unit/architecture/validator_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ def write_config
2828
teardown_application_fixture
2929
end
3030

31+
test 'call returns no error if enforce_architecture is unset' do
32+
write_app_file('packwerk.yml', <<~YML)
33+
{}
34+
YML
35+
result = validator.call(package_set, config)
36+
37+
assert result.ok?
38+
end
39+
3140
test 'call returns an error for invalid enforce_visibility value' do
3241
merge_into_app_yaml_file('package.yml', { 'enforce_architecture' => 'yes, please.' })
3342

0 commit comments

Comments
 (0)