statsd-instrument 3.5.3 → 3.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba71c5241926a499e771c33d9f1d4778a06b1cd419ecdbab19bd6e7b45629ef4
4
- data.tar.gz: 65ae8d434fd664932456a5126453043dd662b60302435e44dbb38918434b9c2d
3
+ metadata.gz: 1f32c9e4ca930e72744cd789511b99b09c07cb2ad7766df3c36490df00911985
4
+ data.tar.gz: 8732469bca8f8592285978a49e9a318fafd12fef0576ac8850de9fd8bdabbd6a
5
5
  SHA512:
6
- metadata.gz: bbdbb0774e5a2aba45e51a5e724384debd0e8503936741958ebe01a547780b935a9098491b4bbcd357d8fd950cd9815392c6713dc09b8d23daa7bc8ff0cc00db
7
- data.tar.gz: 06b848a06d4e88843f9245a9c6ffe681e692fb2225d13e29f328b0738ebdd591a848899208c2eac8690f2d86854520151aa62252aa8070305afc106adf981412
6
+ metadata.gz: 124095c32f119942d8f1e20e210ad13f95f653ab8e6ed999e473abe677957e4295a81b968da319f94ac24a884be1e2750db9965188b1962150366b850a3c49b0
7
+ data.tar.gz: 6eb6efb88b13de4c47d9f17dd9fd8b954c81c7ce0aab5a8e26cc89707539900ef98fce9f44014d14c909c8f3b2d8e80fe13e755174e52d488d47413aefbe4523
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ section below.
6
6
 
7
7
  ## Unreleased changes
8
8
 
9
+ ## Version 3.5.4
10
+
11
+ - Allow user to assert different tags using RSpec composable matcher
12
+
9
13
  ## Version 3.5.3
10
14
 
11
15
  - 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,11 @@ 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 { |m| m.type == metric_type && m.name == metric_name }
46
+ metrics = metrics.select do |m|
47
+ options_tags = options[:tags] || []
48
+ metric_tags = m.tags || []
49
+ m.type == metric_type && m.name == metric_name && metric_tags.all? { |t| options_tags.include?(t) }
50
+ end
47
51
 
48
52
  if metrics.empty?
49
53
  raise RSpec::Expectations::ExpectationNotMetError, "No StatsD calls for metric #{metric_name} were made."
@@ -2,6 +2,6 @@
2
2
 
3
3
  module StatsD
4
4
  module Instrument
5
- VERSION = "3.5.3"
5
+ VERSION = "3.5.4"
6
6
  end
7
7
  end
@@ -34,6 +34,26 @@ 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
+
37
57
  def test_statsd_increment_with_times_matched
38
58
  assert(StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1)
39
59
  .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.3
4
+ version: 3.5.4
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-01-16 00:00:00.000000000 Z
13
+ date: 2023-02-28 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.