41 lines
1.2 KiB
Ruby
41 lines
1.2 KiB
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
require "spec_helper"
|
||
|
|
|
||
|
|
describe WorkOriginalCreator do
|
||
|
|
describe "#display" do
|
||
|
|
let(:original_creator) { create(:work_original_creator) }
|
||
|
|
let(:user) { original_creator.user }
|
||
|
|
|
||
|
|
context "when the associated user exists" do
|
||
|
|
it "returns both the id and username" do
|
||
|
|
expect(original_creator.display).to eq("#{user.id} (#{user.login})")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
context "when the associated user has been deleted" do
|
||
|
|
before { user.destroy! }
|
||
|
|
|
||
|
|
it "returns only the id" do
|
||
|
|
expect(original_creator.reload.display).to eq(original_creator.user_id.to_s)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
describe ".cleanup" do
|
||
|
|
it "removes creators past the configured TTL" do
|
||
|
|
travel_to ArchiveConfig.ORIGINAL_CREATOR_TTL_HOURS.hours.ago do
|
||
|
|
create(:work_original_creator)
|
||
|
|
end
|
||
|
|
expect(described_class.cleanup).to eq(1)
|
||
|
|
expect(described_class.all).to be_empty
|
||
|
|
end
|
||
|
|
|
||
|
|
it "does not remove creators past the TTL" do
|
||
|
|
original_creator = create(:work_original_creator)
|
||
|
|
expect(described_class.cleanup).to eq(0)
|
||
|
|
expect(described_class.exists?(id: original_creator.id)).to be_truthy
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|