Last active
May 21, 2022 13:27
-
-
Save mattwynne/736421 to your computer and use it in GitHub Desktop.
RSpec matcher to compare two file, using their MD5 hashes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RSpec::Matchers.define(:be_same_file_as) do |exected_file_path| | |
match do |actual_file_path| | |
expect(md5_hash(actual_file_path)).to eq(md5_hash(expected_file_path)) | |
end | |
def md5_hash(file_path) | |
Digest::MD5.hexdigest(File.read(file_path)) | |
end | |
end | |
# e.g. path_to_foo.should be_same_file_as(path_to_bar) |
Wow, amazing that this is still useful after 10 years! I've revised the original with your edits, thanks @thomasdarde!
Even more amazing is your reactivity after 10 years 👍
Just one small additional correction -- a typo in expected_file_path
.
Just one small additional correction -- a typo in
expected_file_path
.
How did it take 10 years for someone to spot this!? 😀🙈
Fixed.
Ah, of course this code needing correction was not 10 years old 🤦
Just one small additional correction -- a typo in
expected_file_path
.
You have the same typo on line 1 😅
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A very small revision to avoid a depreation warning :
line 3:
expect(md5_hash(actual_file_path)).to eq(md5_hash(exected_file_path))