UNPKG

testresources

Version:

Adds fluent interface which, with help from superagent, makes testing HTTP resources simpler.

41 lines (30 loc) 1.39 kB
var superAgent = require('superagent'); var testResources = require('require-namespace').testResources; var getServerAddress = testResources.getServerAddress; var createGetChain = require('./createGetChain'), sendRequestAndAssertOnResponse = require('./sendRequestAndAssertOnResponse'); var returnToPreviousChain = function returnToPreviousChain() { this.previousChain.registerChildChain(this); return this.previousChain; } /* We assume that the URL will be in a property of thre response, the property name being the "rel" value of the link */ var prepareForVerification = function(response) { var relativeUrl = response.body[this.linkRel] var superAgentRequest = superAgent.get(relativeUrl); this.superAgentRequest = superAgentRequest; } var createFollowLinkChain = function createFollowLinkChain(linkRel, previousChain, requestFactory) { // TODO: Populate request config // TODO: Consider if we need to pass in request factory. var followLinkChain = Object.create(createGetChain(null, requestFactory)); followLinkChain.endLink = returnToPreviousChain; followLinkChain.previousChain = previousChain; followLinkChain.linkRel = linkRel; followLinkChain.prepareForVerification = prepareForVerification; followLinkChain.request = previousChain.request; return followLinkChain; }; module.exports = createFollowLinkChain;