1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# frozen_string_literal: true
# == Schema Information
#
# Table name: filters
#
# id :integer not null, primary key
# description :string not null
# hidden_complex_str :string
# hidden_tag_ids :integer default([]), not null, is an Array
# name :string not null
# public :boolean default(FALSE), not null
# spoilered_complex_str :string
# spoilered_tag_ids :integer default([]), not null, is an Array
# system :boolean default(FALSE), not null
# user_count :integer default(0), not null
# created_at :datetime not null
# updated_at :datetime not null
# user_id :integer
#
# Indexes
#
# index_filters_on_user_id (user_id)
#
# Foreign Keys
#
# fk_rails_... (user_id => users.id) ON DELETE => cascade ON UPDATE => cascade
#
require 'test_helper'
class FilterTest < ActiveSupport::TestCase
setup do
@filter = build(:filter, name: 'test')
end
test 'should be valid' do
assert @filter.valid?
end
test '#on_lost_user should decrement user count' do
assert_difference('@filter.user_count', -1) do
@filter.save!
@filter.on_lost_user
@filter.reload
end
end
test '#on_gained_user should increment user count' do
assert_difference('@filter.user_count') do
@filter.save!
@filter.on_gained_user
@filter.reload
end
end
test '#spoilered_tag_list should return comma-delimited tag names' do
@tag1 = create(:safe)
@tag2 = create(:suggestive)
@filter.spoilered_tags = [@tag1, @tag2]
assert_equal [@tag1.name, @tag2.name].join(', '), @filter.spoilered_tag_list
end
test '#spoilered_tag_list= should work' do
@tag1 = create(:safe)
@tag2 = create(:suggestive)
@filter.spoilered_tag_list = @tag1.name
assert @filter.spoilered_tags - [@tag1] == []
@filter.spoilered_tag_list = [@tag1.name, @tag2.name].join(', ')
assert @filter.spoilered_tags - [@tag1, @tag2] == [] # not testing order
@filter.spoilered_tag_list = ''
assert_empty @filter.spoilered_tags.to_a
end
test '#hidden_tag_list should return comma-delimited tag names' do
@tag1 = create(:safe)
@tag2 = create(:suggestive)
@filter.hidden_tags = [@tag1, @tag2]
assert_equal [@tag1.name, @tag2.name].join(', '), @filter.hidden_tag_list
end
test '#hidden_tag_list= should work' do
@tag1 = create(:safe)
@tag2 = create(:suggestive)
@filter.hidden_tag_list = @tag1.name
assert @filter.hidden_tags - [@tag1] == []
@filter.hidden_tag_list = [@tag1.name, @tag2.name].join(', ')
assert @filter.hidden_tags - [@tag1, @tag2] == [] # not testing order
@filter.hidden_tag_list = ''
assert_empty @filter.hidden_tags.to_a
end
test 'indexing should work' do
assert_not_nil @filter.as_indexed_json
# nothing to test
end
end
|