From 8e5491a5367efa7f380e5381e0aa9ac3616d6ffa Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 28 Apr 2017 16:22:37 -0500 Subject: [PATCH] saved searches: add query normalization tests. --- app/models/tag_alias.rb | 4 ++-- test/factories/tag_alias.rb | 1 + test/unit/saved_search_test.rb | 16 +++++++++++----- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/models/tag_alias.rb b/app/models/tag_alias.rb index 53d915173..37c58b5c0 100644 --- a/app/models/tag_alias.rb +++ b/app/models/tag_alias.rb @@ -186,8 +186,8 @@ class TagAlias < ActiveRecord::Base end def initialize_creator - self.creator_id = CurrentUser.user.id - self.creator_ip_addr = CurrentUser.ip_addr + self.creator_id ||= CurrentUser.user.id + self.creator_ip_addr ||= CurrentUser.ip_addr end def antecedent_tag diff --git a/test/factories/tag_alias.rb b/test/factories/tag_alias.rb index 89f1ada42..4033c01dd 100644 --- a/test/factories/tag_alias.rb +++ b/test/factories/tag_alias.rb @@ -4,6 +4,7 @@ FactoryGirl.define do consequent_name "bbb" status "active" skip_secondary_validations true + creator_ip_addr { FFaker::Internet.ip_v4_address } after(:create) do |tag_alias| unless tag_alias.status == "pending" diff --git a/test/unit/saved_search_test.rb b/test/unit/saved_search_test.rb index 604126199..c8040c19d 100644 --- a/test/unit/saved_search_test.rb +++ b/test/unit/saved_search_test.rb @@ -30,13 +30,18 @@ class SavedSearchTest < ActiveSupport::TestCase context ".queries_for" do setup do @user = FactoryGirl.create(:user) + FactoryGirl.create(:tag_alias, antecedent_name: "bbb", consequent_name: "ccc", creator: @user) FactoryGirl.create(:saved_search, user: @user, label_string: "blah", query: "aaa") - FactoryGirl.create(:saved_search, user: @user, label_string: "zah", query: "bbb") + FactoryGirl.create(:saved_search, user: @user, label_string: "zah", query: "CCC BBB AAA") + FactoryGirl.create(:saved_search, user: @user, label_string: "qux", query: " aaa bbb ccc ") end should "fetch the queries used by a user for a label" do assert_equal(%w(aaa), SavedSearch.queries_for(@user.id, "blah")) - assert_equal(%w(aaa bbb), SavedSearch.queries_for(@user.id)) + end + + should "return fully normalized queries" do + assert_equal(["aaa", "aaa ccc"], SavedSearch.queries_for(@user.id)) end end @@ -84,7 +89,8 @@ class SavedSearchTest < ActiveSupport::TestCase context "Creating a saved search" do setup do @user = FactoryGirl.create(:gold_user) - @saved_search = @user.saved_searches.create(:query => " xxx ") + FactoryGirl.create(:tag_alias, antecedent_name: "zzz", consequent_name: "yyy", creator: @user) + @saved_search = @user.saved_searches.create(:query => " ZZZ xxx ") end should "update the bitpref on the user" do @@ -92,8 +98,8 @@ class SavedSearchTest < ActiveSupport::TestCase assert(@user.has_saved_searches?, "should have saved_searches bitpref set") end - should "normalize whitespace" do - assert_equal("xxx", @saved_search.query) + should "normalize the query aside from the order" do + assert_equal("yyy xxx", @saved_search.query) end should "normalize the label string" do