statsd-instrument 3.5.3 → 3.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +7 -0
- data/lib/statsd/instrument/matchers.rb +6 -1
- data/lib/statsd/instrument/version.rb +1 -1
- data/test/matchers_test.rb +31 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b4caa06189952666d3dd979521ec76bcf4bbf4265605c2d9d30198773f74ab8
|
4
|
+
data.tar.gz: ec65748283c1a32434f6388e24b167133ba53ec36353c4ec5f8ccfe920657b58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af4a6f52973f439a4d9246fff0d68c74751173998b1a76c9fdbff87ac001f2718ccc8fe2c5abb6d5bdaa5555f9c82150f196c8fe6f819e913a6828ef269a2e14
|
7
|
+
data.tar.gz: 79f76342bc46cf2d07fd96f1d72bbe5bc2367251ff93b05b6c4ed938fe96d85bf44c8178ca4f1f4a7186f10921bfbaea456b2ce2d32e64db806ec526b2894d71
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,14 @@ section below.
|
|
6
6
|
|
7
7
|
## Unreleased changes
|
8
8
|
|
9
|
+
## Version 3.5.5
|
10
|
+
|
11
|
+
- Fix issue on 3.5.4, allowing user to specify compound matcher without tags
|
12
|
+
|
13
|
+
## Version 3.5.4
|
14
|
+
|
15
|
+
- Allow user to assert different tags using RSpec composable matcher
|
16
|
+
|
9
17
|
## Version 3.5.3
|
10
18
|
|
11
19
|
- Improve shapes friendliness for Ruby 3.2+
|
data/README.md
CHANGED
@@ -355,6 +355,13 @@ RSpec.describe 'Matchers' do
|
|
355
355
|
it 'will pass if there is no matching StatsD call on negative expectation' do
|
356
356
|
expect { StatsD.increment('other_counter') }.not_to trigger_statsd_increment('counter')
|
357
357
|
end
|
358
|
+
|
359
|
+
it 'will pass if every statsD call matches its call tag variations' do
|
360
|
+
expect do
|
361
|
+
StatsD.increment('counter', tags: ['variation:a'])
|
362
|
+
StatsD.increment('counter', tags: ['variation:b'])
|
363
|
+
end.to trigger_statsd_increment('counter', times: 1, tags: ["variation:a"]).and trigger_statsd_increment('counter', times: 1, tags: ["variation:b"])
|
364
|
+
end
|
358
365
|
end
|
359
366
|
end
|
360
367
|
```
|
@@ -43,7 +43,12 @@ module StatsD
|
|
43
43
|
|
44
44
|
def expect_statsd_call(metric_type, metric_name, options, &block)
|
45
45
|
metrics = capture_statsd_calls(&block)
|
46
|
-
metrics = metrics.select
|
46
|
+
metrics = metrics.select do |m|
|
47
|
+
metric_tags = m.tags || []
|
48
|
+
options_tags = options[:tags] || []
|
49
|
+
tag_matches = options_tags.empty? || metric_tags.all? { |t| options_tags.include?(t) }
|
50
|
+
m.type == metric_type && m.name == metric_name && tag_matches
|
51
|
+
end
|
47
52
|
|
48
53
|
if metrics.empty?
|
49
54
|
raise RSpec::Expectations::ExpectationNotMetError, "No StatsD calls for metric #{metric_name} were made."
|
data/test/matchers_test.rb
CHANGED
@@ -34,6 +34,37 @@ class MatchersTest < Minitest::Test
|
|
34
34
|
}))
|
35
35
|
end
|
36
36
|
|
37
|
+
def test_statsd_increment_compound_using_and_matched
|
38
|
+
matcher_1 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["a"])
|
39
|
+
matcher_2 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["b"])
|
40
|
+
|
41
|
+
assert(matcher_1.and(matcher_2).matches?(lambda {
|
42
|
+
StatsD.increment("counter", tags: ["a"])
|
43
|
+
StatsD.increment("counter", tags: ["b"])
|
44
|
+
}))
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_statsd_increment_compound_using_and_not_matched
|
48
|
+
matcher_1 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["a"])
|
49
|
+
matcher_2 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["b"])
|
50
|
+
|
51
|
+
refute(matcher_1.and(matcher_2).matches?(lambda {
|
52
|
+
StatsD.increment("counter", tags: ["a"])
|
53
|
+
StatsD.increment("counter", tags: ["c"])
|
54
|
+
}))
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_statsd_increment_compound_without_explicit_tags_using_and_matched
|
58
|
+
matcher_1 = StatsD::Instrument::Matchers::Increment.new(:c, "first_counter", times: 2)
|
59
|
+
matcher_2 = StatsD::Instrument::Matchers::Increment.new(:c, "second_counter", times: 1)
|
60
|
+
|
61
|
+
assert(matcher_1.and(matcher_2).matches?(lambda {
|
62
|
+
StatsD.increment("first_counter", tags: ["a"])
|
63
|
+
StatsD.increment("first_counter", tags: ["b"])
|
64
|
+
StatsD.increment("second_counter", tags: ["c"])
|
65
|
+
}))
|
66
|
+
end
|
67
|
+
|
37
68
|
def test_statsd_increment_with_times_matched
|
38
69
|
assert(StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1)
|
39
70
|
.matches?(lambda { StatsD.increment("counter") }))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statsd-instrument
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Storimer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-03-02 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: A StatsD client for Ruby apps. Provides metaprogramming methods to inject
|
16
16
|
StatsD instrumentation into your code.
|