There seems to be no built-in matcher in RSpec to check if a string contains terms in the desired order. A simple workaround is to use a regular expression that also matches newlines (m
-modifier).
Cons:
- The readability when terms need to be escaped is bad
- A failed spec has an error which needs manually action to be understood (Search if terms appear and in which order)
Example:
expect(ActionMailer::Base.last.to_s).to match(/Dear customer.*Account canceled.*You Awesome Company/m)
Posted by Emanuel to makandra dev (2018-09-11 11:24)