mock response routes no longer pay attention to query strings
This commit is contained in:
		@ -258,21 +258,21 @@ If the route contains tokens, their values are passed to the response. For examp
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "mocks": [
 | 
					  "mocks": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "route": "/five/:id\\?name=:name",
 | 
					      "route": "/five/:id",
 | 
				
			||||||
      "module": "/mocks/example.js"
 | 
					      "module": "/mocks/example.js"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
...the values `id` and `name` are passed to the body function. For example, a path of `/five/10?name=Lionel` would pass `10` and `Lionel` to the body function:
 | 
					...the `id` value is passed to the body function. For example, a path of `/five/10?name=Lionel` would pass `10` to the body function. Additional, the value `Lionel` would be available on `ctx.query.name`:
 | 
				
			||||||
```js
 | 
					```js
 | 
				
			||||||
const fs = require('fs')
 | 
					const fs = require('fs')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  response: {
 | 
					  response: {
 | 
				
			||||||
    body: function (ctx, id, name) {
 | 
					    body: function (ctx, id) {
 | 
				
			||||||
      ctx.body = `<h1>id: ${id}, name: ${name}</h1>`
 | 
					      ctx.body = `<h1>id: ${id}, name: ${ctx.query.name}</h1>`
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -43,11 +43,11 @@
 | 
				
			|||||||
      "module": "/mocks/stream-self.js"
 | 
					      "module": "/mocks/stream-self.js"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "route": "/five/:id\\?name=:name",
 | 
					      "route": "/five/:id",
 | 
				
			||||||
      "module": "/mocks/five.js"
 | 
					      "module": "/mocks/five.js"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "route": "/users*",
 | 
					      "route": "/users",
 | 
				
			||||||
      "module": "/mocks/users.js"
 | 
					      "module": "/mocks/users.js"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  response: function (ctx, id, name) {
 | 
					  response: function (ctx, id) {
 | 
				
			||||||
    ctx.body = `<h1>id: ${id}, name: ${name}</h1>`
 | 
					    ctx.body = `<h1>id: ${id}, name: ${ctx.query.name}</h1>`
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -258,21 +258,21 @@ If the route contains tokens, their values are passed to the response. For examp
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "mocks": [
 | 
					  "mocks": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "route": "/five/:id\\?name=:name",
 | 
					      "route": "/five/:id",
 | 
				
			||||||
      "module": "/mocks/example.js"
 | 
					      "module": "/mocks/example.js"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
...the values `id` and `name` are passed to the body function. For example, a path of `/five/10?name=Lionel` would pass `10` and `Lionel` to the body function:
 | 
					...the `id` value is passed to the body function. For example, a path of `/five/10?name=Lionel` would pass `10` to the body function. Additional, the value `Lionel` would be available on `ctx.query.name`:
 | 
				
			||||||
```js
 | 
					```js
 | 
				
			||||||
const fs = require('fs')
 | 
					const fs = require('fs')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  response: {
 | 
					  response: {
 | 
				
			||||||
    body: function (ctx, id, name) {
 | 
					    body: function (ctx, id) {
 | 
				
			||||||
      ctx.body = `<h1>id: ${id}, name: ${name}</h1>`
 | 
					      ctx.body = `<h1>id: ${id}, name: ${ctx.query.name}</h1>`
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -78,11 +78,11 @@ function mime (mimeTypes) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function mockResponses (route, targets) {
 | 
					function mockResponses (route, targets) {
 | 
				
			||||||
  targets = arrayify(targets)
 | 
					  targets = arrayify(targets)
 | 
				
			||||||
  debug('mock route: %s, targets: %j', route, targets);
 | 
					  debug('mock route: %s, targets: %s', route, targets.length);
 | 
				
			||||||
  const pathRe = pathToRegexp(route)
 | 
					  const pathRe = pathToRegexp(route)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return function mockResponse (ctx, next) {
 | 
					  return function mockResponse (ctx, next) {
 | 
				
			||||||
    if (pathRe.test(ctx.url)) {
 | 
					    if (pathRe.test(ctx.path)) {
 | 
				
			||||||
      const testValue = require('test-value')
 | 
					      const testValue = require('test-value')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      /* find a mock with compatible method and accepts */
 | 
					      /* find a mock with compatible method and accepts */
 | 
				
			||||||
@ -101,9 +101,9 @@ function mockResponses (route, targets) {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (target) {
 | 
					      if (target) {
 | 
				
			||||||
        debug('target response: %s', target.response)
 | 
					        // debug('target response: %s', target.response)
 | 
				
			||||||
        if (t.isFunction(target.response)) {
 | 
					        if (t.isFunction(target.response)) {
 | 
				
			||||||
          const pathMatches = ctx.url.match(pathRe).slice(1)
 | 
					          const pathMatches = ctx.path.match(pathRe).slice(1)
 | 
				
			||||||
          target.response.apply(null, [ctx].concat(pathMatches))
 | 
					          target.response.apply(null, [ctx].concat(pathMatches))
 | 
				
			||||||
        } else if (t.isPlainObject(target.response)) {
 | 
					        } else if (t.isPlainObject(target.response)) {
 | 
				
			||||||
          Object.assign(ctx.response, target.response)
 | 
					          Object.assign(ctx.response, target.response)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user