Sha256: aaeaf4529df0d3af2c0dc00ac41ca46af43c84c9974729fa4c1690ad4ee74b03

Contents?: true

Size: 1.56 KB

Versions: 17

Compression:

Stored size: 1.56 KB

Contents

# frozen_string_literal: true

require 'helper'

class Section < ActiveRecord::Base
  has_many :items
  acts_as_list

  scope :visible, -> { where(visible: true) }
end

class Item < ActiveRecord::Base
  belongs_to :section
  acts_as_list scope: :section

  scope :visible, -> { where(visible: true).joins(:section).merge(Section.visible) }
end

class JoinedTestCase < Minitest::Test
  def setup
    ActiveRecord::Base.connection.create_table :sections do |t|
      t.column :position, :integer
      t.column :visible, :boolean, default: true
    end

    ActiveRecord::Base.connection.create_table :items do |t|
      t.column :position, :integer
      t.column :section_id, :integer
      t.column :visible, :boolean, default: true
    end

    ActiveRecord::Base.connection.schema_cache.clear!
    [Section, Item].each(&:reset_column_information)
    super
  end

  def teardown
    teardown_db
    super
  end
end

# joining the relation returned by `#higher_items` or `#lower_items` to another table
# previously could result in ambiguous column names in the query
class TestHigherLowerItems < JoinedTestCase
  def test_higher_items
    section = Section.create
    item1 = Item.create section: section
    item2 = Item.create section: section
    item3 = Item.create section: section
    assert_equal item3.higher_items.visible, [item2, item1]
  end

  def test_lower_items
    section = Section.create
    item1 = Item.create section: section
    item2 = Item.create section: section
    item3 = Item.create section: section
    assert_equal item1.lower_items.visible, [item2, item3]
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
acts_as_list-1.2.1 test/test_joined_list.rb
acts_as_list-1.2.0 test/test_joined_list.rb
acts_as_list-1.1.0 test/test_joined_list.rb
acts_as_list-1.0.4 test/test_joined_list.rb
acts_as_list-1.0.3 test/test_joined_list.rb
acts_as_list-1.0.2 test/test_joined_list.rb
acts_as_list-1.0.1 test/test_joined_list.rb
acts_as_list-1.0.0 test/test_joined_list.rb
acts_as_list-0.9.19 test/test_joined_list.rb
acts_as_list-0.9.18 test/test_joined_list.rb
acts_as_list-0.9.17 test/test_joined_list.rb
acts_as_list-0.9.16 test/test_joined_list.rb
acts_as_list-0.9.15 test/test_joined_list.rb
acts_as_list-0.9.14 test/test_joined_list.rb
acts_as_list-0.9.13 test/test_joined_list.rb
acts_as_list-0.9.12 test/test_joined_list.rb
acts_as_list-0.9.11 test/test_joined_list.rb