Skip to content

Commit 2a0db3e

Browse files
committed
Add some test
1 parent 12368ee commit 2a0db3e

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

test/attributes_test.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ class Person
1313
kredis_list :names_with_custom_key_via_lambda, key: ->(p) { "person:#{p.id}:names_customized" }
1414
kredis_list :names_with_custom_key_via_method, key: :generate_key
1515
kredis_list :names_with_default_via_lambda, default: ->(p) { [ "Random", p.name ] }
16+
kredis_list :names_with_ttl, expires_in: 1.second
1617
kredis_unique_list :skills, limit: 2
1718
kredis_unique_list :skills_with_default_via_lambda, default: ->(p) { [ "Random", "Random", p.name ] }
19+
kredis_unique_list :skills_with_ttl, expires_in: 1.second
1820
kredis_ordered_set :reading_list, limit: 2
1921
kredis_flag :special
2022
kredis_flag :temporary_special, expires_in: 1.second
@@ -34,6 +36,7 @@ class Person
3436
kredis_slots :meetings, available: 3
3537
kredis_set :vacations
3638
kredis_set :vacations_with_default_via_lambda, default: ->(p) { JSON.parse(p.vacation_destinations).map { |location| location["city"] } }
39+
kredis_set :vacations_with_ttl, expires_in: 1.second
3740
kredis_json :settings
3841
kredis_json :settings_with_default_via_lambda, default: ->(p) { JSON.parse(p.anthropometry).merge(eye_color: p.eye_color) }
3942
kredis_counter :amount
@@ -148,6 +151,14 @@ class AttributesTest < ActiveSupport::TestCase
148151
assert_equal %w[ Random Jason ], Kredis.redis.lrange(Kredis.namespaced_key("people:8:names_with_default_via_lambda"), 0, -1)
149152
end
150153

154+
test "list with ttl" do
155+
@person.names_with_ttl.append(%w[ david kasper ])
156+
assert_equal %w[ david kasper ], @person.names_with_ttl.elements
157+
158+
sleep 1.1
159+
assert_equal [], @person.names_with_ttl.elements
160+
end
161+
151162
test "unique list" do
152163
@person.skills.prepend(%w[ trolling photography ])
153164
@person.skills.prepend("racing")
@@ -160,6 +171,14 @@ class AttributesTest < ActiveSupport::TestCase
160171
assert_equal %w[ Random Jason ], Kredis.redis.lrange(Kredis.namespaced_key("people:8:skills_with_default_via_lambda"), 0, -1)
161172
end
162173

174+
test "unique list with ttl" do
175+
@person.skills_with_ttl.prepend(%w[ trolling photography ])
176+
assert_equal %w[ trolling photography ].to_set, @person.skills_with_ttl.elements.to_set
177+
178+
sleep 1.1
179+
assert_equal [], @person.skills_with_ttl.elements
180+
end
181+
163182
test "ordered set" do
164183
@person.reading_list.prepend(%w[ rework shapeup remote ])
165184
assert_equal %w[ remote shapeup ], @person.reading_list.elements
@@ -324,6 +343,14 @@ class AttributesTest < ActiveSupport::TestCase
324343
assert_equal [ "Paris" ], Kredis.redis.smembers(Kredis.namespaced_key("people:8:vacations_with_default_via_lambda"))
325344
end
326345

346+
test "set with ttl" do
347+
@person.vacations_with_ttl.add "paris"
348+
assert_equal [ "paris" ], @person.vacations_with_ttl.members
349+
350+
sleep 1.1
351+
assert_equal [], @person.vacations_with_ttl.members
352+
end
353+
327354
test "json" do
328355
@person.settings.value = { "color" => "red", "count" => 2 }
329356
assert_equal({ "color" => "red", "count" => 2 }, @person.settings.value)

0 commit comments

Comments
 (0)