otwarchive-symphonyarchive/spec/models/work_original_creator_spec.rb

41 lines
1.2 KiB
Ruby
Raw Permalink Normal View History

2026-03-11 22:22:11 +00:00
# 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