dotnet / dotnet/dev-proxy

Enhancement: define failure rate for each mocked response

Open
#103 13 comments 1 reaction 0 assignees View on GitHub
needs spec
Dominant language
C#
Stars
832
Forks
89
Avg merge
12h 1m
Merged PRs (30d)
23

Description

### Background

Currently, I am researching if we may use the ms-dev-proxy as a tool to support us in integration/manual/QA tests for our apps, and mocking responses is just the perfect functionality we could use 😉.

### Idea

1. Currently the ms-dev-proxy will look for `responses.json` file in the working directory which is just perfect to keep mock related to the app in the projects folder. What I was thinking is maybe ms-dev-proxy could have a new option that would allow specifying the relative path to the `response.json` with mocks to be used. Maybe something like `-r --responses-file-path` (optional). The aim for this would be to have different test scenarios with different mocks for the same app and then use them as part of integration tests. That way I could keep something like
```
.
├── MyApp
├── TestScenarios
│ ├── groups-fail-timeout-responses.json
│ └── throttle-responses.json
```

In this case, each integration test could start the ms-dev-proxy giving different `responses.json` mocks as param.

TBH this is very low 😉 (and probably stupid) idea as the current workaround I have for it is:
- keep `responses.json` in subfolders and run the ms-dev-proxy in the subfolder with correct mocks as working directory
- the test may just copy/paste the needed `responses.json` file to be used for this test.

2. Second idea I had (sorry for adding 2 ideas in one issue, I am a bit lazy and running out of time 😝), is to give possibility to define the failure rate for each mocked response in case we are mocking error response.

Contributor guide

Open the contributing guide

Research direction

Start by locating the command-line handling for responses.json in ms-dev-proxy and the code that applies mocked responses. Clarify whether the requested work includes the alternate responses-file path, per-response failure rates, or both, then define the response configuration and observable behavior before implementation. Done should include documented options and tests covering the selected scenarios.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli, devtools, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.