Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: add URL assertion excluding query parameters #1192

Open
asos-jamiestollery opened this issue Oct 9, 2024 · 4 comments
Open

Feature: add URL assertion excluding query parameters #1192

asos-jamiestollery opened this issue Oct 9, 2024 · 4 comments
Labels

Comments

@asos-jamiestollery
Copy link

Is your feature request related to a problem? Please describe.
There is no way to assert that a WireMockServer has been called at a URL excluding query parameters.

Given my WireMockServer has been called at https://localhost:8080/api/endpoint/?param1=1&param2=2
I would like to be able to do the following assertion wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/");
However, this will fail as the URL does not contain the query parameters.

Describe the solution you'd like
I propose that an optional System.UriPartial parameter is added to the WireMockAssertions.AtUrl method so I could assert like so
wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/", UriPartial.Path);

This param could then be used by the method to only check the specified part of the URL like so Uri.GetLeftPart(UriPartial.Path);

Describe alternatives you've considered
Alternatively a new WireMockAssertions.AtPath method could be created that checks the mock has been called at a URL excluding the query params.

Additional context
I would like to implement this change myself if it is accepted as a feature

@StefH StefH assigned StefH and unassigned StefH Oct 9, 2024
@StefH
Copy link
Collaborator

StefH commented Oct 9, 2024

Maybe adding an overload which accepts a WildcardMatcher could also solve your issue?

@asos-jamiestollery
Copy link
Author

Maybe adding an overload which accepts a WildcardMatcher could also solve your issue?

Yes that would work! That would also allow for the query parameters to be validated, nice.

@StefH Just to confirm, are you happy for me to progress with the change to add an overload to the WireMockAssertions.AtUrl method that takes a WildcardMatcher object to validate the URL against?

@StefH
Copy link
Collaborator

StefH commented Oct 10, 2024

Yes you can make a PR.

Also include a unit test.

@StefH
Copy link
Collaborator

StefH commented Oct 18, 2024

@asos-jamiestollery How is it going?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants