Skip to content

Commit

Permalink
Support replacing tag in scenario name
Browse files Browse the repository at this point in the history
  • Loading branch information
jcdietrich committed Sep 4, 2024
1 parent 0ecde81 commit aeae4a5
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pkg/vars/evaluator.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ func (fp ResponseMessageEvaluator) walkAndFill(res *mock.HTTPEntity, vars map[st

func (fp ResponseMessageEvaluator) walkAndGetScenario(scenario mock.Scenario) []string {
vars := []string{}
fp.extractVars(scenario.Name, &vars)

for _, value := range scenario.Values {
fp.extractVars(value, &vars)
}
Expand All @@ -106,6 +108,8 @@ func (fp ResponseMessageEvaluator) walkAndGetScenario(scenario mock.Scenario) []
func (fp ResponseMessageEvaluator) walkAndFillScenario(
scenario *mock.Scenario,
vars map[string][]string) {
scenario.Name = fp.replaceVars(scenario.Name, vars)

for valueName, value := range scenario.Values {
scenario.Values[valueName] = fp.replaceVars(value, vars)
}
Expand Down
27 changes: 27 additions & 0 deletions pkg/vars/evaluator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,33 @@ func TestReplaceTags(t *testing.T) {
}
}

func TestReplaceTagInScenarioName(t *testing.T) {
req := mock.Request{}
req.Body = "hi!"

val := make(mock.Values)
val["id"] = []string{"123454321:id:"}

req.QueryStringParameters = val

res := mock.Response{}
cb := mock.Callback{}
mock := mock.Definition{Request: req, Response: res, Callback: cb}
mock.Control.Scenario.Name = "scenarioName_{{request.query.id}}"

scenarioValues := make(map[string]string)
scenarioValues["tested"] = "ok"

storer := NewDummyScenarioStorer("scenarioName_{{request.query.id}}", scenarioValues)

varsProcessor := getProcessor()
varsProcessor.Eval(&req, &mock, storer)

if mock.Control.Scenario.Name != "scenarioName_123454321:id:" {
t.Error("Scenario name not updated", mock.Control.Scenario.Name)
}
}

func TestReplaceUndefinedFakeTag(t *testing.T) {
req := mock.Request{}
val := make(mock.Values)
Expand Down

0 comments on commit aeae4a5

Please sign in to comment.