otwarchive-symphonyarchive/spec/requests/collection_items_n_plus_one_spec.rb
2026-03-11 22:22:11 +00:00

37 lines
996 B
Ruby

# frozen_string_literal: true
require "spec_helper"
describe "n+1 queries in the collection items controller" do
include LoginMacros
describe "#index" do
context "when viewing collection items for a specific user", n_plus_one: true do
let!(:user) { create(:user) }
populate do |n|
create_list(:work, n, authors: [user.default_pseud]).each do |work|
collection_item = create(:collection_item, item: work)
collection_item.collection.icon.attach(io: File.open(Rails.root.join("features/fixtures/icon.gif")), filename: "icon.gif", content_type: "image/gif")
end
end
subject do
proc do
get user_collection_items_path(user_id: user)
end
end
before do
fake_login_known_user(user)
end
warmup { subject.call }
it "produces a constant number of queries" do
expect { subject.call }
.to perform_constant_number_of_queries
end
end
end
end