Module: Pundit::ExpectedAttributeValues::TestHelpers

Defined in:
lib/pundit/expected_attribute_values/test_helpers.rb

Class Method Summary collapse

Class Method Details

.expected_values_for(policy, attribute, action:) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
# File 'lib/pundit/expected_attribute_values/test_helpers.rb', line 8

def expected_values_for(policy, attribute, action:)
  raise ArgumentError, "action is required" if action.nil?

  policy.pundit_expected_attribute_values_for_attribute(attribute, action: action)
end

.expects_value?(policy, attribute, value, action:) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
# File 'lib/pundit/expected_attribute_values/test_helpers.rb', line 14

def expects_value?(policy, attribute, value, action:)
  expected_values_for(policy, attribute, action: action).include?(
    ValueResolver.normalize_value(value)
  )
end

.matches_expected_values?(policy, attribute, expected, action:) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# File 'lib/pundit/expected_attribute_values/test_helpers.rb', line 24

def matches_expected_values?(policy, attribute, expected, action:)
  actual = expected_values_for(policy, attribute, action: action)
  expected_list = ValueResolver.normalize_list(expected)
  actual.sort == expected_list.sort
end

.refutes_expected_value?(policy, attribute, value, action:) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/pundit/expected_attribute_values/test_helpers.rb', line 20

def refutes_expected_value?(policy, attribute, value, action:)
  !expects_value?(policy, attribute, value, action: action)
end