Sha256: 342f35cf9de5ff629529b196310926e062b676a78fc7d30e57eca5fdee93eeb7

Contents?: true

Size: 1.83 KB

Versions: 5

Compression:

Stored size: 1.83 KB

Contents

require 'spec_helper'

describe ChecksumAuditLog, :type => :model do
  let(:f) do
    GenericFile.new.tap do |gf|
      gf.add_file(File.open(fixture_path + '/world.png'), 'content', 'world.png')
      gf.apply_depositor_metadata('mjg36')
      gf.save!
    end
  end
  let(:version) { f.datastreams['content'].versions.first }
  let(:old) do
    ChecksumAuditLog.create(pid: f.pid, dsid: version.dsid, version: version.versionID, pass: 1, created_at: 2.minutes.ago)
  end
  let(:new) do
    ChecksumAuditLog.create(pid: f.pid, dsid: version.dsid, version: version.versionID, pass: 0, created_at: 1.minute.ago)
  end
  after(:all) do
    ChecksumAuditLog.destroy_all
  end
  before do
    allow_any_instance_of(GenericFile).to receive(:characterize).and_return(true) # stub out characterization so it does not get audited
  end
  it "returns a list of logs for this datastream sorted by date descending" do
    expect(f.logs(version.dsid)).to eq [new, old]
  end
  describe "history pruning" do
    before do
      @success1 = ChecksumAuditLog.create(pid: f.pid, dsid: version.dsid, version: version.versionID, pass: 1)
      ChecksumAuditLog.prune_history(version)
      @success2 = ChecksumAuditLog.create(pid: f.pid, dsid: version.dsid, version: version.versionID, pass: 1)
      ChecksumAuditLog.prune_history(version)
      @success3 = ChecksumAuditLog.create(pid: f.pid, dsid: version.dsid, version: version.versionID, pass: 1)
      ChecksumAuditLog.prune_history(version)
    end
    it "prunes history for a datastream" do
      expect { ChecksumAuditLog.find(@success2.id)}.to raise_exception ActiveRecord::RecordNotFound
      expect { ChecksumAuditLog.find(@success3.id)}.to raise_exception ActiveRecord::RecordNotFound
      expect(ChecksumAuditLog.find(@success1.id)).not_to be_nil
      expect(f.logs(version.dsid)).to eq [@success1, new, old]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sufia-5.0.0 spec/models/checksum_audit_log_spec.rb
sufia-5.0.0.rc1 spec/models/checksum_audit_log_spec.rb
sufia-4.3.1 spec/models/checksum_audit_log_spec.rb
sufia-4.2.0 spec/models/checksum_audit_log_spec.rb
sufia-4.1.0 spec/models/checksum_audit_log_spec.rb