Sha256: 909c4c728efd453354a8a979608ee45e284e0f951f560386a2f0eef90cc492c0

Contents?: true

Size: 1.32 KB

Versions: 26

Compression:

Stored size: 1.32 KB

Contents

require "spec_helper"

module Omnibus
  describe Digestable do
    let(:path) { "/path/to/file" }
    let(:io)   { StringIO.new }

    subject { Class.new { include Digestable }.new }

    describe "#digest" do
      it "reads the IO in chunks" do
        expect(File).to receive(:open).with(path).and_yield(io)
        expect(subject.digest(path)).to eq("d41d8cd98f00b204e9800998ecf8427e")
      end
    end

    describe "#digest_directory" do
      let(:path)    { "/path/to/dir" }
      let(:glob)    { "#{path}/**/*" }
      let(:subdir)  { "/path/to/dir/subdir" }
      let(:subfile) { "/path/to/dir/subfile" }
      let(:io)      { StringIO.new }

      it "inspects the file types of glob entries" do
        expect(FileSyncer).to receive(:glob).with(glob).and_return([subdir])
        expect(File).to receive(:ftype).with(subdir).and_return("directory")
        expect(subject.digest_directory(path)).to eq("8b91792e7917b1152d8494670caaeb85")
      end

      it "inspects the contents of the files" do
        expect(FileSyncer).to receive(:glob).with(glob).and_return([subfile])
        expect(File).to receive(:ftype).with(subfile).and_return("file")
        expect(File).to receive(:open).with(subfile).and_yield(io)
        expect(subject.digest_directory(path)).to eq("c8f023976b95ace2ae3678540fd3b4f1")
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
omnibus-9.0.24 spec/unit/digestable_spec.rb
omnibus-9.0.23 spec/unit/digestable_spec.rb
omnibus-9.0.22 spec/unit/digestable_spec.rb
omnibus-9.0.17 spec/unit/digestable_spec.rb
omnibus-9.0.12 spec/unit/digestable_spec.rb
omnibus-9.0.11 spec/unit/digestable_spec.rb
omnibus-9.0.8 spec/unit/digestable_spec.rb
omnibus-8.3.2 spec/unit/digestable_spec.rb
omnibus-8.2.2 spec/unit/digestable_spec.rb
omnibus-8.1.15 spec/unit/digestable_spec.rb
omnibus-8.0.15 spec/unit/digestable_spec.rb
omnibus-8.0.9 spec/unit/digestable_spec.rb
omnibus-7.0.34 spec/unit/digestable_spec.rb
omnibus-7.0.13 spec/unit/digestable_spec.rb
omnibus-7.0.12 spec/unit/digestable_spec.rb
omnibus-6.1.9 spec/unit/digestable_spec.rb
omnibus-6.1.7 spec/unit/digestable_spec.rb
omnibus-6.1.4 spec/unit/digestable_spec.rb
omnibus-6.0.30 spec/unit/digestable_spec.rb
omnibus-6.0.25 spec/unit/digestable_spec.rb