From 3cd978d20aff522040ef7e6429b1447b9e296925 Mon Sep 17 00:00:00 2001 From: Yousaf Nabi Date: Wed, 14 Aug 2024 16:04:52 +0100 Subject: [PATCH] chore: match regex with pact-jvm for int/decimal https://github.com/pact-foundation/pact-jvm/blob/00442e6df51e5be906ed470b19859246312e5c83/core/matchers/src/main/kotlin/au/com/dius/pact/core/matchers/MatcherExecutor.kt\#L56-L59 --- lib/pact/helpers.rb | 6 ++++-- spec/lib/pact/helpers_spec.rb | 4 ++-- spec/lib/pact/term_spec.rb | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/pact/helpers.rb b/lib/pact/helpers.rb index c4e663f..3059dc0 100644 --- a/lib/pact/helpers.rb +++ b/lib/pact/helpers.rb @@ -47,12 +47,14 @@ def like_date date Pact::Term.new(generate: date, matcher: /^\d{4}-[01]\d-[0-3]\d$/) end + # regex matched with pact-jvm + # https://github.com/pact-foundation/pact-jvm/blob/00442e6df51e5be906ed470b19859246312e5c83/core/matchers/src/main/kotlin/au/com/dius/pact/core/matchers/MatcherExecutor.kt#L56-L59 def like_integer int - Pact::Term.new(generate: int, matcher: /[0-9]/) + Pact::Term.new(generate: int, matcher: /^-?\d+$/) end def like_decimal float - Pact::Term.new(generate: float, matcher: /[-+]?([0-9]*\.[0-9]+|[0-9]+)/) + Pact::Term.new(generate: float, matcher: /^0|-?\d+\.\d*$/) end def like_datetime_rfc822 datetime diff --git a/spec/lib/pact/helpers_spec.rb b/spec/lib/pact/helpers_spec.rb index 3381eb9..001a257 100644 --- a/spec/lib/pact/helpers_spec.rb +++ b/spec/lib/pact/helpers_spec.rb @@ -146,7 +146,7 @@ module Pact it "creates a Pact::Term with regex matcher for integers" do expect(like_integer(integer)).to eq Pact::Term.new( generate: integer, - matcher: /[0-9]/ + matcher: /^-?\d+$/ ) end end @@ -156,7 +156,7 @@ module Pact it "creates a Pact::Term with regex matcher for decimals" do expect(like_decimal(10.2)).to eq Pact::Term.new( generate: float, - matcher: /[-+]?([0-9]*\.[0-9]+|[0-9]+)/ + matcher: /^0|-?\d+\.\d*$/ ) end end diff --git a/spec/lib/pact/term_spec.rb b/spec/lib/pact/term_spec.rb index f899a58..0b4dd0f 100644 --- a/spec/lib/pact/term_spec.rb +++ b/spec/lib/pact/term_spec.rb @@ -15,7 +15,7 @@ module Pact end context "when the generate is a integer" do - let(:term) { Term.new(generate: 10, matcher: /[0-9]/)} + let(:term) { Term.new(generate: 10, matcher: /^-?\d+$/)} it 'does not raise an exception' do term @@ -23,7 +23,7 @@ module Pact end context "when the generate is a float" do - let(:term) { Term.new(generate: 50.51, matcher: /[-+]?([0-9]*\.[0-9]+|[0-9]+)/)} + let(:term) { Term.new(generate: 50.51, matcher: /^0|-?\d+\.\d*$/)} it 'does not raise an exception' do term