class RuboCop::Cop::InSpecStyle::AwsIamUserProperty
aws_iam_users resource properties `user|password|last_change|expiry_date|line` is deprecated in favor of `users|passwords|last_changes|expiry_dates|lines`
@example EnforcedStyle: InSpecStyle
(default)
# Use users instead # bad describe aws_iam_user('/etc/my-custom-place/aws_iam_user') do its('name') { should eq 'user' } end # good describe aws_iam_user('/etc/my-custom-place/aws_iam_user') do its('username') { should eq 'user' } end
Constants
- MAP
- MSG
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/inspecstyle/aws_iam_user_property.rb, line 70 def autocorrect(node) lambda do |corrector| case node.children[0].children[-1].inspect when "s(:str, \"name\")" corrector.replace(offense_range(node), 'username') when "s(:str, \"user\")" corrector.replace(offense_range(node), 'aws_user_struct') else break end end end
on_block(node)
click to toggle source
# File lib/rubocop/cop/inspecstyle/aws_iam_user_property.rb, line 53 def on_block(node) return unless inside_aws_iam_users_spec?(node) node.descendants.each do |descendant| deprecated_aws_iam_users_property?(descendant) do |violation| add_offense( descendant, location: offense_range(descendant), message: format( MSG, violation: violation, solution: MAP[violation.to_sym] ) ) end end end
Private Instance Methods
inside_aws_iam_users_spec?(root)
click to toggle source
# File lib/rubocop/cop/inspecstyle/aws_iam_user_property.rb, line 85 def inside_aws_iam_users_spec?(root) spec?(root) && aws_iam_users_resource?(root) end
offense_range(node)
click to toggle source
# File lib/rubocop/cop/inspecstyle/aws_iam_user_property.rb, line 89 def offense_range(node) source = node.children[0].children[-1].loc.expression range_between(source.begin_pos+1, source.end_pos-1) end