diff --git a/package.json b/package.json index ec29375..5ec839f 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "dependencies": { "cucumber": "~0.4", "protagonist": "~0.8", - "gavel": "~0.2" + "gavel": "~0.2", + "dredd": "~0.3" }, "devDependencies": { "coffee-script": "~1.7", diff --git a/src/request/request-builder.coffee b/src/request/request-builder.coffee index 144c577..30ecaae 100644 --- a/src/request/request-builder.coffee +++ b/src/request/request-builder.coffee @@ -1,5 +1,5 @@ class RequestBuilder - constructor: (@host, @port) -> + constructor: (@host, @port, @path) -> @method = null @uriTemplate = null @setBody '' @@ -10,7 +10,7 @@ class RequestBuilder @method = method setUriTemplate: (uriTemplate) -> - @uriTemplate = uriTemplate + @uriTemplate = @path + uriTemplate setBody: (body) -> @body = body diff --git a/src/world.coffee b/src/world.coffee index 12a3184..22f55d2 100644 --- a/src/world.coffee +++ b/src/world.coffee @@ -21,7 +21,10 @@ class World getRequest: () -> if !@request? and !@response? - @request = new RequestBuilder @baseUrl['hostname'], @baseUrl['port'] + fullPath = '' + if @baseUrl['path'] is not '/' + fullPath = '/' + @baseUrl['path'].replace(/^\/|\/$/g, '') + @request = new RequestBuilder @baseUrl['hostname'], @baseUrl['port'], fullPath return @request processRequest: (callback, errorCallback) -> @@ -61,6 +64,12 @@ class World @getRequest().setMethod @structure.action.method @getRequest().setUriTemplate @structure.resource.uriTemplate + if @structure.action.examples? and @structure.action.examples.length > 0 and @structure.action.examples[0].requests? and @structure.action.examples[0].requests.length > 0 + request = @structure.action.examples[0].requests[0] + @getRequest().setBody request.body if request.body? + for key in Object.keys(request.headers) + @getRequest().setHeader key, request.headers[key].value if request.headers[key].value? + success() module.exports = World