smocker-dev / smocker

Smocker is a simple and efficient HTTP mock server and proxy
https://smocker.dev
MIT License
1.14k stars 61 forks source link

Delay not working when using go_template #305

Open netguino opened 3 months ago

netguino commented 3 months ago

Using the following mock from the documentation ( documentation example: link ) that uses lua:

- # Lua mock with body as string
  request:
    path: /test
  dynamic_response:
    engine: lua
    script: >
      return {
        body = '{"message":"request path '..request.path..'"}',
        headers = {
          ["Content-Type"] = "application/json"
        },
        delay = {
          min = "0",
          max = "10ms"
        }
      }

We can see that when hitting it, it does get delayed as expected.

If we now use the following mock example ( documentation example: link ):

- # Go Template Json mock with body as json
  request:
    path: /test6
  dynamic_response:
    engine: go_template_json
    script: >
      {
        "body": {
          "message": "request path {{.Request.Path}}"
        },
        "headers": {
          "Content-Type": ["application/json"]
        },
        "delay": {
          "min": "0",
          "max": "10ms"
        }
      }

We can now observe that it will not get delayed.

Note that using a range or a set value for the delay doesn't change the behaviour.