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(
[
:a,
an_array_starting_with(:b)
]
)