# frozen_string_literal: true

RSpec.describe Thing do
  it "randomly selects from all" do
    expect(Thing.all.to_sql).to end_with("ORDER BY RANDOM()")
  end

  it "randomly selects from some" do
    expect(Thing.where(word: "foo").to_sql).to end_with("ORDER BY RANDOM()")
  end

  it "adds randomness to existing order" do
    expect(Thing.order(:word).to_sql).to end_with('ORDER BY "things"."word" ASC, RANDOM()')
  end

  it "respects a disable block" do
    Unreliable::Config.disable do
      expect(Thing.where(word: "foo").to_sql).to_not end_with("ORDER BY RANDOM()")
      expect(Thing.where(word: "foo").to_sql).to end_with(%q("things"."word" = 'foo'))
    end
  end
end
