shlogg · Early preview
Augusts Bautra @augustsbautra

Custom Matcher For Ignoring Empty Cells In Excel Export Tests

Fixed Excel export tests by creating custom matcher to ignore irrelevant empty cells. Simplified specs and made them more readable.

Today I was working with generating excel files for export and had some trouble with tests - the generator (or maybe parser?) kept adding a random number of empty cells after the relevant data, making assertions fail.
Luckily, we can define our own matcher to ignore these irrelevant details. Also makes the spec read better. :)

# spec/support/matchers/array_starting_with_matcher.rb
RSpec::Matchers.define :an_array_starting_with do |expected|
  match do |actual|
    actual.is_a?(Array) && actual.first == expected
  end
end
# then in specs
expect(
  [
    :a,
    [:b, nil, nil]
  ]
).to match(...