Sha256: 4f5997854e3e3573934d2420d2a366a6602250b73d157de41222e7cdc46da28a
Contents?: true
Size: 1.96 KB
Versions: 3
Compression:
Stored size: 1.96 KB
Contents
# frozen_string_literal: true require 'spec_helper' describe PostSearch do let(:user) { create_user } def create_user User.create! name: "User #{User.count + 1}" end def create(attributes = {}) Post.create! attributes.reverse_merge( user: user, title: 'Title', body: 'Body', category_name: 'Tech', published: true ) end def expect_search(options) expect(PostSearch.new(filters: options, page: 0).results) end it 'can search by category name' do post = create category_name: 'Personal' _other = create category_name: 'Other' expect_search(category_name: 'Personal').to eq [post] end it 'can search by user_id' do post = create user: create_user _other = create user: create_user expect_search(user_id: post.user_id).to eq [post] end it 'can search by title' do post = create title: 'Title' _other = create title: 'Other' expect_search(title: 'itl').to eq [post] end it 'can search by published' do post = create published: true _other = create published: false expect_search(published: true).to eq [post] end it 'can search by term' do post_with_body = create body: 'pattern' post_with_title = create title: 'pattern' _other = create expect_search(term: 'pattern').to eq [post_with_title, post_with_body] end it 'can search by created after' do post = create created_at: 1.month.ago _other = create created_at: 3.month.ago expect_search(created_after: 2.month.ago.strftime('%Y-%m-%d')).to eq [post] end it 'can search by created before' do post = create created_at: 3.month.ago _other = create created_at: 1.month.ago expect_search(created_before: 2.month.ago.strftime('%Y-%m-%d')).to eq [post] end it 'can sort by views count' do post3 = create views_count: 3 post2 = create views_count: 2 post1 = create views_count: 1 expect_search(sort: 'views_count').to eq [post3, post2, post1] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
search_object-1.2.5 | example/spec/models/post_search_spec.rb |
search_object-1.2.4 | example/spec/models/post_search_spec.rb |
search_object-1.2.3 | example/spec/models/post_search_spec.rb |