Sha256: 453aa2c859cd53333dcf1c7577553b3354dd517c15b78537164a6134edda7753
Contents?: true
Size: 1.32 KB
Versions: 5
Compression:
Stored size: 1.32 KB
Contents
require 'spec_helper_active_record' module Trailblazer class Finder module Adapters describe FriendlyId do after do Product.delete_all end def finder_class Class.new(Trailblazer::Finder) do adapters ActiveRecord, FriendlyId entity_type { Product } filter_by :name filter_by :price end end def finder_with_slug(slug = nil, filters = {}) finder_class.new filter: { id: slug }.merge(filters) end it 'filters by slug' do 2.times { |i| Product.create name: "Product #{i}", price: i, slug: "product_#{i}" } finder = finder_with_slug 'product_1' expect(finder.results.map(&:name)).to eq ['Product 1'] end it 'filters by id' do 2.times { |i| Product.create name: "Product #{i}", price: i, slug: "product_#{i}" } finder = finder_with_slug Product.last.id expect(finder.results.map(&:name)).to match_array([Product.last.name]) end it 'returns no records when slug is not found' do 2.times { |i| Product.create name: "Product #{i}", price: i, slug: "product_#{i}" } finder = finder_with_slug 'unknown_1' expect(finder.count).to eq 0 end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems