webmock icon indicating copy to clipboard operation
webmock copied to clipboard

Match regexes in an array

Open saty9 opened this issue 4 years ago • 1 comments

I'm trying to mock a service that takes an array of active storage urls but the matcher seems to mangle regexes I put in an array:

stub_request(:post, "http://service:8080/")
      .with(
        body: {
          urls: [match(%r{https://example.com/rails/active_storage/disk})],
       }
     )
     .to_return(status: 200, body: network_return)

gets me:

Body diff:
 [["-",
  "urls[0]",
  "https://example.com/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOVGhsWWpoMmMzbGxiVzlxTW1jeWEyazRaMlJqZEdSdFoyZDJkd1k2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpQWNCaGRIUmhZMmh0Wlc1ME95Qm1hV3hsYm1GdFpUMGlkak10Y0d4aGFXNTBaWGgwTFRBd01EQXdNREF3TFRBd01EQXRNREF3TUMwd01EQXdMVEF3TURBd01EQXdNREF3TUMweU1ESXhMVEEwTFRBeFZEQTFMVEF3TG1Wa1oyVmliRzlpSWpzZ1ptbHNaVzVoYldVcVBWVlVSaTA0SnlkMk15MXdiR0ZwYm5SbGVIUXRNREF3TURBd01EQXRNREF3TUMwd01EQXdMVEF3TURBdE1EQXdNREF3TURBd01EQXdMVEl3TWpFdE1EUXRNREZVTURVdE1EQXVaV1JuWldKc2IySUdPd1pVT2hGamIyNTBaVzUwWDNSNWNHVkpJaDFoY0hCc2FXTmhkR2x2Ymk5dlkzUmxkQzF6ZEhKbFlXMEdPd1pVT2hGelpYSjJhV05sWDI1aGJXVTZDWFJsYzNRPSIsImV4cCI6IjIwMjEtMDgtMDNUMTE6MTg6MzAuMTk4WiIsInB1ciI6ImJsb2Jfa2V5In19--c5e1597a9c4e5db029b458c6639e775f26897422/filename"],
 ["+",
  "urls[0]",
  /https:\/\/example.com\/rails\/active_storage\/disk/]]

saty9 avatar Aug 03 '21 11:08 saty9

@saty9 It's not something supported by WebMock, though possibly it will work with RSpec's hash_including.

E.g body: hash_including(urls: [....])

bblimke avatar Aug 03 '21 14:08 bblimke