# frozen_string_literal: true require "rails_helper" describe Moderation::AnonymousBlockController, :ajax_controller, type: :controller do describe "#index" do subject { get :index } shared_examples_for "should render the page successfully" do it "should render the page successfully" do subject expect(response).to have_rendered(:index) expect(response).to have_http_status(200) end end shared_examples_for "empty" do it "should assign an empty result set" do subject expect(assigns(:anonymous_blocks)).to be_empty end end context "when there are no anonymous blocks" do include_examples "empty" include_examples "should render the page successfully" end context "when there are some anonymous blocks set" do before do %w[a b c].each do |identifier| AnonymousBlock.create!(identifier:) end end it "should assign an result set" do subject expect(assigns(:anonymous_blocks).length).to eq(3) end include_examples "should render the page successfully" end context "when there are only anonymous blocks assigned for users" do before do user = FactoryBot.create(:user) %w[a b c].each do |identifier| AnonymousBlock.create!(user:, identifier:) end end include_examples "empty" include_examples "should render the page successfully" end end end