diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e64a1c4..1ef5e459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,10 @@ (No more hard-coded mocked responses, meaning our unit tests are **much more** realistic!) ([luke-hill]) +- Optimised some recursion logic to use the `site_prism-all_there` sub-gem ([luke-hill]) + ### Fixed +- `#elements_present` properly respects `.expected_items` when set ([luke-hill]) ## [4.0.2] - 2023-05-23 ### Fixed diff --git a/lib/site_prism/element_checker.rb b/lib/site_prism/element_checker.rb index 5ae504f9..9b8a15fa 100644 --- a/lib/site_prism/element_checker.rb +++ b/lib/site_prism/element_checker.rb @@ -39,7 +39,7 @@ def all_there?(recursion: :none) # # @return [Array] def elements_present - _mapped_items.select { |name| there?(name) } + elements_to_check.select { |name| there?(name) } end # Returns each element that is not currently present inside the scope being tested @@ -52,20 +52,7 @@ def elements_missing private def elements_to_check - if _expected_items - SitePrism.logger.debug('Expected Items has been set.') - _mapped_items.select { |name| _expected_items.include?(name) } - else - _mapped_items - end - end - - def _mapped_items - self.class.mapped_items.values.flatten.uniq - end - - def _expected_items - self.class.expected_items + SitePrism::AllThere::ExpectedItems.new(self).send(:mapped_checklist) end def there?(name)