Skip to content

Commit e56145b

Browse files
committed
update spec folder structure
1 parent 69036c6 commit e56145b

File tree

8 files changed

+80
-70
lines changed

8 files changed

+80
-70
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ module LaunchDarkly
1111
end
1212
end
1313
end
14+
Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,52 +29,63 @@ module LaunchDarkly
2929
end
3030

3131
it "evicts entries based on max size" do
32-
c = subject.new(2, 300)
32+
c = subject.new(3, 300)
3333
c[:a] = 1
3434
c[:b] = 2
3535
c[:c] = 3
36+
c[:d] = 4
3637

3738
expect(c[:a]).to be nil
3839
expect(c[:b]).to eq 2
3940
expect(c[:c]).to eq 3
41+
expect(c[:d]).to eq 4
4042
end
4143

42-
it "does not reset LRU on get" do
43-
c = subject.new(2, 300)
44+
it "resets TTL on put" do
45+
c = subject.new(3, 300)
4446
c[:a] = 1
4547
c[:b] = 2
46-
c[:a]
48+
49+
Timecop.freeze(Time.now + 250)
50+
51+
c[:a] = 1.5
52+
53+
Timecop.freeze(Time.now + 100)
54+
4755
c[:c] = 3
4856

49-
expect(c[:a]).to be nil
50-
expect(c[:b]).to eq 2
57+
expect(c[:a]).to eq 1.5
58+
expect(c[:b]).to be nil
5159
expect(c[:c]).to eq 3
5260
end
5361

5462
it "resets LRU on put" do
55-
c = subject.new(2, 300)
63+
c = subject.new(3, 300)
5664
c[:a] = 1
5765
c[:b] = 2
58-
c[:a] = 1
5966
c[:c] = 3
67+
c[:a] = 1.5
68+
c[:d] = 4
6069

61-
expect(c[:a]).to eq 1
70+
expect(c[:a]).to eq 1.5
6271
expect(c[:b]).to be nil
6372
expect(c[:c]).to eq 3
73+
expect(c[:d]).to eq 4
6474
end
6575

66-
it "resets TTL on put" do
76+
it "does not reset LRU on get" do
6777
c = subject.new(3, 300)
6878
c[:a] = 1
6979
c[:b] = 2
70-
71-
Timecop.freeze(Time.now + 330)
72-
c[:a] = 1
7380
c[:c] = 3
81+
c[:a]
82+
c[:d] = 4
7483

75-
expect(c[:a]).to eq 1
76-
expect(c[:b]).to be nil
84+
expect(c[:a]).to be nil
85+
expect(c[:b]).to eq 2
7786
expect(c[:c]).to eq 3
87+
expect(c[:d]).to eq 4
7888
end
7989
end
8090
end
91+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ module LaunchDarkly
2525
end
2626
end
2727
end
28+

spec/impl/util_spec.rb

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,65 @@
22

33
module LaunchDarkly
44
module Impl
5-
describe "payload filter key validation" do
6-
let(:logger) { double }
5+
describe Util do
6+
describe 'log_exception' do
7+
let(:logger) { double }
78

8-
it "silently discards nil" do
9-
expect(logger).not_to receive(:warn)
10-
expect(Util.validate_payload_filter_key(nil, logger)).to be_nil
9+
it "logs error data" do
10+
expect(logger).to receive(:error)
11+
expect(logger).to receive(:debug)
12+
begin
13+
raise StandardError.new 'asdf'
14+
rescue StandardError => exn
15+
Util.log_exception(logger, "message", exn)
16+
end
17+
end
1118
end
1219

13-
[true, 1, 1.0, [], {}].each do |value|
14-
it "returns nil for invalid type #{value.class}" do
15-
expect(logger).to receive(:warn)
16-
expect(Util.validate_payload_filter_key(value, logger)).to be_nil
20+
describe "payload filter key validation" do
21+
let(:logger) { double }
22+
23+
it "silently discards nil" do
24+
expect(logger).not_to receive(:warn)
25+
expect(Util.validate_payload_filter_key(nil, logger)).to be_nil
1726
end
18-
end
1927

20-
[
21-
"",
22-
"-cannot-start-with-dash",
23-
"_cannot-start-with-underscore",
24-
"-cannot-start-with-period",
25-
"no spaces for you",
26-
"org@special/characters",
27-
].each do |value|
28-
it "returns nil for invalid value #{value}" do
29-
expect(logger).to receive(:warn)
30-
expect(Util.validate_payload_filter_key(value, logger)).to be_nil
28+
[true, 1, 1.0, [], {}].each do |value|
29+
it "returns nil for invalid type #{value.class}" do
30+
expect(logger).to receive(:warn)
31+
expect(Util.validate_payload_filter_key(value, logger)).to be_nil
32+
end
3133
end
32-
end
3334

34-
[
35-
"camelCase",
36-
"snake_case",
37-
"kebab-case",
38-
"with.dots",
39-
"with_underscores",
40-
"with-hyphens",
41-
"with1234numbers",
42-
"with.many_1234-mixtures",
43-
"1start-with-number",
44-
].each do |value|
45-
it "passes for value #{value}" do
46-
expect(logger).not_to receive(:warn)
47-
expect(Util.validate_payload_filter_key(value, logger)).to eq(value)
35+
[
36+
"",
37+
"-cannot-start-with-dash",
38+
"_cannot-start-with-underscore",
39+
"-cannot-start-with-period",
40+
"no spaces for you",
41+
"org@special/characters",
42+
].each do |value|
43+
it "returns nil for invalid value #{value}" do
44+
expect(logger).to receive(:warn)
45+
expect(Util.validate_payload_filter_key(value, logger)).to be_nil
46+
end
47+
end
48+
49+
[
50+
"camelCase",
51+
"snake_case",
52+
"kebab-case",
53+
"with.dots",
54+
"with_underscores",
55+
"with-hyphens",
56+
"with1234numbers",
57+
"with.many_1234-mixtures",
58+
"1start-with-number",
59+
].each do |value|
60+
it "passes for value #{value}" do
61+
expect(logger).not_to receive(:warn)
62+
expect(Util.validate_payload_filter_key(value, logger)).to eq(value)
63+
end
4864
end
4965
end
5066
end

spec/util_spec.rb

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)