[Pkg-javascript-commits] [node-coveralls] 168/332: remove coverage.json file and add it to .gitignore.
Bastien Roucariès
rouca at moszumanska.debian.org
Thu Nov 9 13:53:56 UTC 2017
This is an automated email from the git hooks/post-receive script.
rouca pushed a commit to branch master
in repository node-coveralls.
commit 136edac4342df669c293b321cf8997ce927c0e63
Author: Gregg Caines <gregg at caines.ca>
Date: Sun Jun 22 07:22:26 2014 -0700
remove coverage.json file and add it to .gitignore.
---
.gitignore | 2 +
coverage.json | 5574 ---------------------------------------------------------
2 files changed, 2 insertions(+), 5574 deletions(-)
diff --git a/.gitignore b/.gitignore
index e53562f..9873739 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
node_modules/
coverage/
lib-cov/
+coverage.json
+
diff --git a/coverage.json b/coverage.json
deleted file mode 100644
index 3fde1f1..0000000
--- a/coverage.json
+++ /dev/null
@@ -1,5574 +0,0 @@
-make[1]: Entering directory `/home/cainus/percolator'
-current_path: DOES_NOT_EXIST mount_path: browser
-{
- "instrumentation": "node-jscoverage",
- "sloc": 567,
- "hits": 523,
- "misses": 44,
- "coverage": 92.23985890652557,
- "files": [
- {
- "filename": "CRUDCollection.js",
- "coverage": 94.20289855072464,
- "hits": 65,
- "misses": 4,
- "sloc": 69,
- "source": {
- "1": {
- "source": "var JSV = require('JSV').JSV;",
- "coverage": 1
- },
- "2": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "3": {
- "source": "",
- "coverage": ""
- },
- "4": {
- "source": "var CRUDCollection = function(options){",
- "coverage": 1
- },
- "5": {
- "source": "",
- "coverage": ""
- },
- "6": {
- "source": " if (!options || (!options.list && !options.collectionGET)){",
- "coverage": 24
- },
- "7": {
- "source": " throw \"the options parameter should have a list() or collectionGET() function.\";",
- "coverage": 1
- },
- "8": {
- "source": " }",
- "coverage": ""
- },
- "9": {
- "source": "",
- "coverage": ""
- },
- "10": {
- "source": " // TODO: list() array or object",
- "coverage": ""
- },
- "11": {
- "source": " if (options.create && !options.createSchema && !!options.schema){",
- "coverage": 23
- },
- "12": {
- "source": " options.createSchema = options.schema;",
- "coverage": 2
- },
- "13": {
- "source": " }",
- "coverage": ""
- },
- "14": {
- "source": " if (!options.updateSchema && !!options.schema){",
- "coverage": 23
- },
- "15": {
- "source": " options.updateSchema = options.schema;",
- "coverage": 4
- },
- "16": {
- "source": " }",
- "coverage": ""
- },
- "17": {
- "source": " if (!options.update && !options.upsert){",
- "coverage": 23
- },
- "18": {
- "source": " delete options.updateSchema; // if there's no update(), we ignore any updateSchema",
- "coverage": 18
- },
- "19": {
- "source": " }",
- "coverage": ""
- },
- "20": {
- "source": "",
- "coverage": ""
- },
- "21": {
- "source": " var outputList = function(req, res, list, key){",
- "coverage": 23
- },
- "22": {
- "source": " var collection = res.collection(list, key);",
- "coverage": 3
- },
- "23": {
- "source": " if (req.app.autoLink){",
- "coverage": 3
- },
- "24": {
- "source": " collection = collection.linkEach('self', function(item, name){",
- "coverage": 3
- },
- "25": {
- "source": " if (!!key){",
- "coverage": 0
- },
- "26": {
- "source": " return req.uri.child(item[key]); // allow 'options' to provide another key to link on.",
- "coverage": 0
- },
- "27": {
- "source": " } else {",
- "coverage": ""
- },
- "28": {
- "source": " return req.uri.child(name);",
- "coverage": 0
- },
- "29": {
- "source": " }",
- "coverage": ""
- },
- "30": {
- "source": " });",
- "coverage": ""
- },
- "31": {
- "source": " }",
- "coverage": ""
- },
- "32": {
- "source": " if (!!options.createSchema && req.app.autoLink){",
- "coverage": 3
- },
- "33": {
- "source": " collection = collection.link('create',",
- "coverage": 2
- },
- "34": {
- "source": " req.uri.query(false),",
- "coverage": ""
- },
- "35": {
- "source": " { method : 'POST',",
- "coverage": ""
- },
- "36": {
- "source": " schema : options.createSchema});",
- "coverage": ""
- },
- "37": {
- "source": " }",
- "coverage": ""
- },
- "38": {
- "source": " collection.send();",
- "coverage": 3
- },
- "39": {
- "source": " };",
- "coverage": ""
- },
- "40": {
- "source": "",
- "coverage": ""
- },
- "41": {
- "source": " this.handler = {",
- "coverage": 23
- },
- "42": {
- "source": " GET : function(req, res){",
- "coverage": ""
- },
- "43": {
- "source": " options.list(req, res, function(err, items, options){",
- "coverage": 3
- },
- "44": {
- "source": " if (!!err){",
- "coverage": 3
- },
- "45": {
- "source": " return res.status.internalServerError(err);",
- "coverage": 0
- },
- "46": {
- "source": " }",
- "coverage": ""
- },
- "47": {
- "source": " outputList(req, res, items, options);",
- "coverage": 3
- },
- "48": {
- "source": " });",
- "coverage": ""
- },
- "49": {
- "source": " }",
- "coverage": ""
- },
- "50": {
- "source": " };",
- "coverage": ""
- },
- "51": {
- "source": "",
- "coverage": ""
- },
- "52": {
- "source": " if (!!options.create){",
- "coverage": 23
- },
- "53": {
- "source": " this.handler.POST = function(req, res){",
- "coverage": 4
- },
- "54": {
- "source": " req.onJson(options.createSchema, function(err, obj){",
- "coverage": 2
- },
- "55": {
- "source": " options.create(req, res, obj, function(){",
- "coverage": 2
- },
- "56": {
- "source": " return res.status.created(req.uri);",
- "coverage": 1
- },
- "57": {
- "source": " });",
- "coverage": ""
- },
- "58": {
- "source": " });",
- "coverage": ""
- },
- "59": {
- "source": " };",
- "coverage": ""
- },
- "60": {
- "source": " }",
- "coverage": ""
- },
- "61": {
- "source": "",
- "coverage": ""
- },
- "62": {
- "source": " this.wildcard = { };",
- "coverage": 23
- },
- "63": {
- "source": "",
- "coverage": ""
- },
- "64": {
- "source": " if (!!options.fetch){",
- "coverage": 23
- },
- "65": {
- "source": " this.wildcard.fetch = options.fetch;",
- "coverage": 6
- },
- "66": {
- "source": " this.wildcard.GET = function(req, res){",
- "coverage": 6
- },
- "67": {
- "source": " var resource = res.object(req.fetched);",
- "coverage": 5
- },
- "68": {
- "source": " if ((!!options.update || !!options.upsert) && (req.app.autoLink)){",
- "coverage": 5
- },
- "69": {
- "source": " resource.link( \"update\", req.uri, {method : 'PUT', schema : options.updateSchema});",
- "coverage": 1
- },
- "70": {
- "source": " }",
- "coverage": ""
- },
- "71": {
- "source": " if (!!options.destroy && req.app.autoLink){",
- "coverage": 5
- },
- "72": {
- "source": " resource.link( \"delete\", req.uri, {method : 'DELETE'});",
- "coverage": 1
- },
- "73": {
- "source": " }",
- "coverage": ""
- },
- "74": {
- "source": " resource.send();",
- "coverage": 5
- },
- "75": {
- "source": " };",
- "coverage": ""
- },
- "76": {
- "source": " }",
- "coverage": ""
- },
- "77": {
- "source": "",
- "coverage": ""
- },
- "78": {
- "source": " // UPDATE",
- "coverage": ""
- },
- "79": {
- "source": " if (!!options.update){",
- "coverage": 23
- },
- "80": {
- "source": " this.wildcard.fetchOnPUT = true;",
- "coverage": 3
- },
- "81": {
- "source": " this.wildcard.PUT = function(req, res){",
- "coverage": 3
- },
- "82": {
- "source": " req.onJson(options.updateSchema, function(err, obj){",
- "coverage": 2
- },
- "83": {
- "source": " var id = req.uri.child();",
- "coverage": 2
- },
- "84": {
- "source": " options.update(req, res, id, obj, function(){",
- "coverage": 2
- },
- "85": {
- "source": " res.setHeader('Location', req.uri);",
- "coverage": 1
- },
- "86": {
- "source": " res.writeHead(303);",
- "coverage": 1
- },
- "87": {
- "source": " return res.end();",
- "coverage": 1
- },
- "88": {
- "source": " });",
- "coverage": ""
- },
- "89": {
- "source": " });",
- "coverage": ""
- },
- "90": {
- "source": " };",
- "coverage": ""
- },
- "91": {
- "source": " }",
- "coverage": ""
- },
- "92": {
- "source": "",
- "coverage": ""
- },
- "93": {
- "source": " // UPSERT",
- "coverage": ""
- },
- "94": {
- "source": " if (!!options.upsert){",
- "coverage": 23
- },
- "95": {
- "source": " // fetch is not used here, because this is for create as well as update",
- "coverage": ""
- },
- "96": {
- "source": " this.wildcard.fetchOnPUT = false;",
- "coverage": 2
- },
- "97": {
- "source": "",
- "coverage": ""
- },
- "98": {
- "source": " this.wildcard.PUT = function(req, res){",
- "coverage": 2
- },
- "99": {
- "source": " req.onJson(options.updateSchema, function(err, obj){",
- "coverage": 2
- },
- "100": {
- "source": " var id = req.uri.child();",
- "coverage": 2
- },
- "101": {
- "source": " options.upsert(req, res, id, obj, function(){",
- "coverage": 2
- },
- "102": {
- "source": " res.setHeader('Location', req.uri);",
- "coverage": 1
- },
- "103": {
- "source": " res.writeHead(303);",
- "coverage": 1
- },
- "104": {
- "source": " return res.end();",
- "coverage": 1
- },
- "105": {
- "source": " });",
- "coverage": ""
- },
- "106": {
- "source": " });",
- "coverage": ""
- },
- "107": {
- "source": " };",
- "coverage": ""
- },
- "108": {
- "source": " }",
- "coverage": ""
- },
- "109": {
- "source": "",
- "coverage": ""
- },
- "110": {
- "source": " // DESTROY",
- "coverage": ""
- },
- "111": {
- "source": " if (!!options.destroy){",
- "coverage": 23
- },
- "112": {
- "source": " this.wildcard.DELETE = function(req, res){",
- "coverage": 3
- },
- "113": {
- "source": " options.destroy(req, res, req.uri.child(), function(){",
- "coverage": 2
- },
- "114": {
- "source": " res.writeHead(204);",
- "coverage": 1
- },
- "115": {
- "source": " res.end();",
- "coverage": 1
- },
- "116": {
- "source": " });",
- "coverage": ""
- },
- "117": {
- "source": " };",
- "coverage": ""
- },
- "118": {
- "source": " }",
- "coverage": ""
- },
- "119": {
- "source": "",
- "coverage": ""
- },
- "120": {
- "source": " if (!!options.collectionGET){",
- "coverage": 23
- },
- "121": {
- "source": " this.handler.GET = options.collectionGET;",
- "coverage": 1
- },
- "122": {
- "source": " }",
- "coverage": ""
- },
- "123": {
- "source": "",
- "coverage": ""
- },
- "124": {
- "source": " if (!!options.memberGET){",
- "coverage": 23
- },
- "125": {
- "source": " this.wildcard.GET = options.memberGET;",
- "coverage": 1
- },
- "126": {
- "source": " }",
- "coverage": ""
- },
- "127": {
- "source": "",
- "coverage": ""
- },
- "128": {
- "source": "};",
- "coverage": ""
- },
- "129": {
- "source": "module.exports = CRUDCollection;",
- "coverage": 1
- }
- }
- },
- {
- "filename": "ContextFaker.js",
- "coverage": 86.27450980392157,
- "hits": 88,
- "misses": 14,
- "sloc": 102,
- "source": {
- "1": {
- "source": "var assert = require('assert');",
- "coverage": 1
- },
- "2": {
- "source": "var nodeUrl = require('url');",
- "coverage": 1
- },
- "3": {
- "source": "var urlgrey = require('urlgrey');",
- "coverage": 1
- },
- "4": {
- "source": "var StatusManager = require('../index').StatusManager;",
- "coverage": 1
- },
- "5": {
- "source": "var ObjectHelper = require('../index').ObjectHelper;",
- "coverage": 1
- },
- "6": {
- "source": "var FetchHelper = require('../index').FetchHelper;",
- "coverage": 1
- },
- "7": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "8": {
- "source": "var detour = require('detour');",
- "coverage": 1
- },
- "9": {
- "source": "",
- "coverage": ""
- },
- "10": {
- "source": "var ContextFaker = function(method, url, headers, body){",
- "coverage": 1
- },
- "11": {
- "source": " this._method = method || 'GET';",
- "coverage": 9
- },
- "12": {
- "source": " this._url = url || '/';",
- "coverage": 9
- },
- "13": {
- "source": " this._headers = headers || {};",
- "coverage": 9
- },
- "14": {
- "source": " this._body = body || '';",
- "coverage": 9
- },
- "15": {
- "source": " this.expect = this._expectObject();",
- "coverage": 9
- },
- "16": {
- "source": " this.expectations = {};",
- "coverage": 9
- },
- "17": {
- "source": " this._refreshFake();",
- "coverage": 9
- },
- "18": {
- "source": " this.$ = {};",
- "coverage": 9
- },
- "19": {
- "source": "};",
- "coverage": ""
- },
- "20": {
- "source": "",
- "coverage": ""
- },
- "21": {
- "source": "ContextFaker.prototype._refreshFake = function(){",
- "coverage": 1
- },
- "22": {
- "source": " this.$ = new ContextFake(this._method,",
- "coverage": 21
- },
- "23": {
- "source": " this._url,",
- "coverage": ""
- },
- "24": {
- "source": " this._headers,",
- "coverage": ""
- },
- "25": {
- "source": " this._body,",
- "coverage": ""
- },
- "26": {
- "source": " this.expectations,",
- "coverage": ""
- },
- "27": {
- "source": " this.done);",
- "coverage": ""
- },
- "28": {
- "source": " this.req = this.$.req;",
- "coverage": 21
- },
- "29": {
- "source": " this.res = this.$.res;",
- "coverage": 21
- },
- "30": {
- "source": "};",
- "coverage": ""
- },
- "31": {
- "source": "",
- "coverage": ""
- },
- "32": {
- "source": "ContextFaker.prototype.route = function(module, done){",
- "coverage": 1
- },
- "33": {
- "source": " var req = this.req;",
- "coverage": 9
- },
- "34": {
- "source": " var res = this.res;",
- "coverage": 9
- },
- "35": {
- "source": " var body = this._body;",
- "coverage": 9
- },
- "36": {
- "source": " this.$.done = done;",
- "coverage": 9
- },
- "37": {
- "source": " FetchHelper(req, res, module, function(){",
- "coverage": 9
- },
- "38": {
- "source": " module[req.method](req, res);",
- "coverage": 7
- },
- "39": {
- "source": " req.end(body);",
- "coverage": 7
- },
- "40": {
- "source": " });",
- "coverage": ""
- },
- "41": {
- "source": "};",
- "coverage": ""
- },
- "42": {
- "source": "",
- "coverage": ""
- },
- "43": {
- "source": "ContextFaker.prototype.headers = function(headers){",
- "coverage": 1
- },
- "44": {
- "source": " this._headers = headers;",
- "coverage": 1
- },
- "45": {
- "source": " this._refreshFake();",
- "coverage": 1
- },
- "46": {
- "source": " return this;",
- "coverage": 1
- },
- "47": {
- "source": "};",
- "coverage": ""
- },
- "48": {
- "source": "ContextFaker.prototype.header = function(name, value){",
- "coverage": 1
- },
- "49": {
- "source": " this._headers[name] = value;",
- "coverage": 1
- },
- "50": {
- "source": " this._refreshFake();",
- "coverage": 1
- },
- "51": {
- "source": " return this;",
- "coverage": 1
- },
- "52": {
- "source": "};",
- "coverage": ""
- },
- "53": {
- "source": "ContextFaker.prototype.url = function(url){",
- "coverage": 1
- },
- "54": {
- "source": " this._url = url;",
- "coverage": 9
- },
- "55": {
- "source": " this._refreshFake();",
- "coverage": 9
- },
- "56": {
- "source": " return this;",
- "coverage": 9
- },
- "57": {
- "source": "};",
- "coverage": ""
- },
- "58": {
- "source": "ContextFaker.prototype.method = function(method){",
- "coverage": 1
- },
- "59": {
- "source": " this._method = method;",
- "coverage": 0
- },
- "60": {
- "source": " this._refreshFake();",
- "coverage": 0
- },
- "61": {
- "source": " return this;",
- "coverage": 0
- },
- "62": {
- "source": "};",
- "coverage": ""
- },
- "63": {
- "source": "ContextFaker.prototype.body = function(thebody){",
- "coverage": 1
- },
- "64": {
- "source": " this._body = thebody;",
- "coverage": 1
- },
- "65": {
- "source": " this._refreshFake();",
- "coverage": 1
- },
- "66": {
- "source": " return this;",
- "coverage": 1
- },
- "67": {
- "source": "};",
- "coverage": ""
- },
- "68": {
- "source": "",
- "coverage": ""
- },
- "69": {
- "source": "ContextFaker.prototype._expectObject = function(){",
- "coverage": 1
- },
- "70": {
- "source": " var faker = this;",
- "coverage": 9
- },
- "71": {
- "source": " return {",
- "coverage": 9
- },
- "72": {
- "source": " statusCode : function(code){",
- "coverage": ""
- },
- "73": {
- "source": " faker.expectations.statusCode = code;",
- "coverage": 0
- },
- "74": {
- "source": " return faker;",
- "coverage": 0
- },
- "75": {
- "source": " },",
- "coverage": ""
- },
- "76": {
- "source": " body : function(bodyVal){",
- "coverage": ""
- },
- "77": {
- "source": " faker.expectations.body = bodyVal;",
- "coverage": 0
- },
- "78": {
- "source": " return faker;",
- "coverage": 0
- },
- "79": {
- "source": " },",
- "coverage": ""
- },
- "80": {
- "source": " header : function(name, value){",
- "coverage": ""
- },
- "81": {
- "source": " faker.expectations.headers[name] = value;",
- "coverage": 0
- },
- "82": {
- "source": " return faker;",
- "coverage": 0
- },
- "83": {
- "source": " }",
- "coverage": ""
- },
- "84": {
- "source": " };",
- "coverage": ""
- },
- "85": {
- "source": "};",
- "coverage": ""
- },
- "86": {
- "source": "",
- "coverage": ""
- },
- "87": {
- "source": "var ContextFake = function(method, url, headers, body, expectations){",
- "coverage": 1
- },
- "88": {
- "source": " var fake = this;",
- "coverage": 21
- },
- "89": {
- "source": " var parsedUrl = nodeUrl.parse(url);",
- "coverage": 21
- },
- "90": {
- "source": " var protocol = 'http';",
- "coverage": 21
- },
- "91": {
- "source": " if (parsedUrl.protocol){",
- "coverage": 21
- },
- "92": {
- "source": " this.protocol = parsedUrl.protocol.slice(0, -1);",
- "coverage": 0
- },
- "93": {
- "source": " // remove trailing ':'",
- "coverage": ""
- },
- "94": {
- "source": " }",
- "coverage": ""
- },
- "95": {
- "source": " var hostname = parsedUrl.hostname || 'localhost';",
- "coverage": 21
- },
- "96": {
- "source": " var port = parsedUrl.port || 80;",
- "coverage": 21
- },
- "97": {
- "source": " this.router = {",
- "coverage": 21
- },
- "98": {
- "source": " }; ",
- "coverage": ""
- },
- "99": {
- "source": " this.done = function(){};",
- "coverage": 21
- },
- "100": {
- "source": " var endHandler = function(){};",
- "coverage": 21
- },
- "101": {
- "source": " var dataHandler = function(){};",
- "coverage": 21
- },
- "102": {
- "source": " this.req = {",
- "coverage": 21
- },
- "103": {
- "source": " app : {},",
- "coverage": ""
- },
- "104": {
- "source": " headers : headers,",
- "coverage": ""
- },
- "105": {
- "source": " method : method,",
- "coverage": ""
- },
- "106": {
- "source": " url : url,",
- "coverage": ""
- },
- "107": {
- "source": " uri : urlgrey(url),",
- "coverage": ""
- },
- "108": {
- "source": " resume : function(){},",
- "coverage": ""
- },
- "109": {
- "source": " on : function(eventName, cb){",
- "coverage": ""
- },
- "110": {
- "source": " if (eventName === 'data'){",
- "coverage": 2
- },
- "111": {
- "source": " dataHandler = cb;",
- "coverage": 1
- },
- "112": {
- "source": " }",
- "coverage": ""
- },
- "113": {
- "source": " if (eventName === 'end'){",
- "coverage": 2
- },
- "114": {
- "source": " endHandler = cb;",
- "coverage": 1
- },
- "115": {
- "source": " }",
- "coverage": ""
- },
- "116": {
- "source": " },",
- "coverage": ""
- },
- "117": {
- "source": " write : function(data){",
- "coverage": ""
- },
- "118": {
- "source": " dataHandler(data);",
- "coverage": 0
- },
- "119": {
- "source": " },",
- "coverage": ""
- },
- "120": {
- "source": " end : function(data){",
- "coverage": ""
- },
- "121": {
- "source": " endHandler(data);",
- "coverage": 7
- },
- "122": {
- "source": " }",
- "coverage": ""
- },
- "123": {
- "source": " };",
- "coverage": ""
- },
- "124": {
- "source": " this.actual = {};",
- "coverage": 21
- },
- "125": {
- "source": " this.actual.body = '';",
- "coverage": 21
- },
- "126": {
- "source": " this.actual.headers = {};",
- "coverage": 21
- },
- "127": {
- "source": " this.res = {",
- "coverage": 21
- },
- "128": {
- "source": " writeHead : function(statusCode, reasonPhrase, headers){",
- "coverage": ""
- },
- "129": {
- "source": " fake.res.statusCode = statusCode;",
- "coverage": 2
- },
- "130": {
- "source": " fake.actual.statusCode = statusCode;",
- "coverage": 2
- },
- "131": {
- "source": " fake.actual.headers = _.extend(fake.actual.headers, headers);",
- "coverage": 2
- },
- "132": {
- "source": " },",
- "coverage": ""
- },
- "133": {
- "source": " setHeader : function(name, value){",
- "coverage": ""
- },
- "134": {
- "source": " fake.actual.headers[name] = value;",
- "coverage": 8
- },
- "135": {
- "source": " },",
- "coverage": ""
- },
- "136": {
- "source": " statusCode : 200,",
- "coverage": ""
- },
- "137": {
- "source": " write : function(data, encoding){",
- "coverage": ""
- },
- "138": {
- "source": " fake.actual.body += data;",
- "coverage": 0
- },
- "139": {
- "source": " },",
- "coverage": ""
- },
- "140": {
- "source": " end : function(data, encoding){",
- "coverage": ""
- },
- "141": {
- "source": " fake.actual.statusCode = fake.res.statusCode;",
- "coverage": 9
- },
- "142": {
- "source": " if (data){",
- "coverage": 9
- },
- "143": {
- "source": " fake.actual.body += data;",
- "coverage": 9
- },
- "144": {
- "source": " }",
- "coverage": ""
- },
- "145": {
- "source": " fake.validate();",
- "coverage": 9
- },
- "146": {
- "source": " if (fake.done){",
- "coverage": 9
- },
- "147": {
- "source": " fake.done(fake.actual);",
- "coverage": 9
- },
- "148": {
- "source": " }",
- "coverage": ""
- },
- "149": {
- "source": " }",
- "coverage": ""
- },
- "150": {
- "source": " };",
- "coverage": ""
- },
- "151": {
- "source": " ObjectHelper(this.req, this.res);",
- "coverage": 21
- },
- "152": {
- "source": " this.res.status = (new StatusManager()).createResponder(this.req, this.res);",
- "coverage": 21
- },
- "153": {
- "source": " this.res.status.on('error', function(data){ /* do nothing */});",
- "coverage": 21
- },
- "154": {
- "source": " this.res.status.emit = function(){}; // swallow events",
- "coverage": 21
- },
- "155": {
- "source": " //TODO can validate() be hidden? it's only called from res.end() right?",
- "coverage": ""
- },
- "156": {
- "source": " // does it ever need to be called explicitly?",
- "coverage": ""
- },
- "157": {
- "source": " this.validate = function(){",
- "coverage": 21
- },
- "158": {
- "source": " if (expectations.statusCode){",
- "coverage": 9
- },
- "159": {
- "source": " assert.equal(this.res.statusCode,",
- "coverage": 0
- },
- "160": {
- "source": " expectations.statusCode,",
- "coverage": ""
- },
- "161": {
- "source": " \"response statusCode should have been \" +",
- "coverage": ""
- },
- "162": {
- "source": " expectations.statusCode +",
- "coverage": ""
- },
- "163": {
- "source": " \" but was \" +",
- "coverage": ""
- },
- "164": {
- "source": " this.res.statusCode",
- "coverage": ""
- },
- "165": {
- "source": " );",
- "coverage": ""
- },
- "166": {
- "source": " }",
- "coverage": ""
- },
- "167": {
- "source": " if (expectations.body){",
- "coverage": 9
- },
- "168": {
- "source": " assert.equal(this.actual.body,",
- "coverage": 0
- },
- "169": {
- "source": " expectations.body,",
- "coverage": ""
- },
- "170": {
- "source": " \"response body should have been: \\n \" +",
- "coverage": ""
- },
- "171": {
- "source": " expectations.body +",
- "coverage": ""
- },
- "172": {
- "source": " \"\\n\\n ...but was: \\n\" +",
- "coverage": ""
- },
- "173": {
- "source": " this.actual.body + \"\\n\\n\"",
- "coverage": ""
- },
- "174": {
- "source": " );",
- "coverage": ""
- },
- "175": {
- "source": " }",
- "coverage": ""
- },
- "176": {
- "source": " };",
- "coverage": ""
- },
- "177": {
- "source": "};",
- "coverage": ""
- },
- "178": {
- "source": "",
- "coverage": ""
- },
- "179": {
- "source": "module.exports = ContextFaker;",
- "coverage": 1
- },
- "180": {
- "source": "",
- "coverage": ""
- },
- "181": {
- "source": "",
- "coverage": ""
- },
- "182": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/Authenticate.js",
- "coverage": 100,
- "hits": 11,
- "misses": 0,
- "sloc": 11,
- "source": {
- "1": {
- "source": "",
- "coverage": ""
- },
- "2": {
- "source": "",
- "coverage": ""
- },
- "3": {
- "source": "var AuthenticateHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "4": {
- "source": " // if handler has an authenticate defined, call it.",
- "coverage": ""
- },
- "5": {
- "source": " if (!!handler.authenticate && (typeof(handler.authenticate) == 'function')){",
- "coverage": 19
- },
- "6": {
- "source": " handler.authenticate(req, res, function(err, authenticated){",
- "coverage": 4
- },
- "7": {
- "source": " if (err === true){",
- "coverage": 3
- },
- "8": {
- "source": " // if it returns an error, throw a 401",
- "coverage": ""
- },
- "9": {
- "source": " return res.status.unauthenticated();",
- "coverage": 1
- },
- "10": {
- "source": " }",
- "coverage": ""
- },
- "11": {
- "source": " if (!!err){",
- "coverage": 2
- },
- "12": {
- "source": " return res.status.internalServerError(err);",
- "coverage": 1
- },
- "13": {
- "source": " }",
- "coverage": ""
- },
- "14": {
- "source": " // if it returns an object set handler.authenticated",
- "coverage": ""
- },
- "15": {
- "source": " req.authenticated = authenticated;",
- "coverage": 1
- },
- "16": {
- "source": " cb(); // no error",
- "coverage": 1
- },
- "17": {
- "source": " });",
- "coverage": ""
- },
- "18": {
- "source": " } else {",
- "coverage": ""
- },
- "19": {
- "source": " cb(); // no error if no authenticate()",
- "coverage": 15
- },
- "20": {
- "source": " }",
- "coverage": ""
- },
- "21": {
- "source": "};",
- "coverage": ""
- },
- "22": {
- "source": "",
- "coverage": ""
- },
- "23": {
- "source": "",
- "coverage": ""
- },
- "24": {
- "source": "module.exports = AuthenticateHelper;",
- "coverage": 1
- },
- "25": {
- "source": "",
- "coverage": ""
- },
- "26": {
- "source": "",
- "coverage": ""
- },
- "27": {
- "source": "",
- "coverage": ""
- },
- "28": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/BasicAuthenticate.js",
- "coverage": 100,
- "hits": 22,
- "misses": 0,
- "sloc": 22,
- "source": {
- "1": {
- "source": "",
- "coverage": ""
- },
- "2": {
- "source": "",
- "coverage": ""
- },
- "3": {
- "source": "var BasicAuthenticateContextHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "4": {
- "source": " // if handler has a basicAuthenticate defined, call it.",
- "coverage": ""
- },
- "5": {
- "source": " if (!!handler.basicAuthenticate && (typeof(handler.basicAuthenticate) == 'function')){",
- "coverage": 7
- },
- "6": {
- "source": " var header = req.headers.authorization;",
- "coverage": 6
- },
- "7": {
- "source": "",
- "coverage": ""
- },
- "8": {
- "source": " if (!header){",
- "coverage": 6
- },
- "9": {
- "source": " return unauthenticated(res);",
- "coverage": 1
- },
- "10": {
- "source": " }",
- "coverage": ""
- },
- "11": {
- "source": "",
- "coverage": ""
- },
- "12": {
- "source": " var pieces = header.split(\" \");",
- "coverage": 5
- },
- "13": {
- "source": " var scheme = pieces[0];",
- "coverage": 5
- },
- "14": {
- "source": "",
- "coverage": ""
- },
- "15": {
- "source": " if (scheme !== 'Basic'){",
- "coverage": 5
- },
- "16": {
- "source": " return unauthenticated(res);",
- "coverage": 1
- },
- "17": {
- "source": " }",
- "coverage": ""
- },
- "18": {
- "source": " var credentials = new Buffer(pieces[1], 'base64').toString('utf8').split(\":\");",
- "coverage": 4
- },
- "19": {
- "source": "",
- "coverage": ""
- },
- "20": {
- "source": " handler.basicAuthenticate(credentials[0], credentials[1], req, res, function(err, authenticated){",
- "coverage": 4
- },
- "21": {
- "source": " if (err === true){",
- "coverage": 3
- },
- "22": {
- "source": " // if it returns an error, throw a 401",
- "coverage": ""
- },
- "23": {
- "source": " return unauthenticated(res);",
- "coverage": 1
- },
- "24": {
- "source": " }",
- "coverage": ""
- },
- "25": {
- "source": " if (!!err){",
- "coverage": 2
- },
- "26": {
- "source": " return res.status.internalServerError(err);",
- "coverage": 1
- },
- "27": {
- "source": " }",
- "coverage": ""
- },
- "28": {
- "source": " // if it returns an object set handler.authenticated",
- "coverage": ""
- },
- "29": {
- "source": " req.authenticated = authenticated;",
- "coverage": 1
- },
- "30": {
- "source": " cb(); // no error",
- "coverage": 1
- },
- "31": {
- "source": " });",
- "coverage": ""
- },
- "32": {
- "source": " } else {",
- "coverage": ""
- },
- "33": {
- "source": " cb(); // no error if no authenticate()",
- "coverage": 1
- },
- "34": {
- "source": " }",
- "coverage": ""
- },
- "35": {
- "source": "};",
- "coverage": ""
- },
- "36": {
- "source": "",
- "coverage": ""
- },
- "37": {
- "source": "",
- "coverage": ""
- },
- "38": {
- "source": "module.exports = BasicAuthenticateContextHelper;",
- "coverage": 1
- },
- "39": {
- "source": "",
- "coverage": ""
- },
- "40": {
- "source": "var unauthenticated = function(res){",
- "coverage": 1
- },
- "41": {
- "source": " res.setHeader('WWW-Authenticate', 'Basic');",
- "coverage": 3
- },
- "42": {
- "source": " res.status.unauthenticated({scheme : 'Basic'});",
- "coverage": 3
- },
- "43": {
- "source": "};",
- "coverage": ""
- },
- "44": {
- "source": "",
- "coverage": ""
- },
- "45": {
- "source": "",
- "coverage": ""
- },
- "46": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/Fetch.js",
- "coverage": 100,
- "hits": 13,
- "misses": 0,
- "sloc": 13,
- "source": {
- "1": {
- "source": "/*",
- "coverage": ""
- },
- "2": {
- "source": "",
- "coverage": ""
- },
- "3": {
- "source": "The purpose of the fetch helper is to use ",
- "coverage": ""
- },
- "4": {
- "source": "a resource-defined fetch() method and automatically retrieve",
- "coverage": ""
- },
- "5": {
- "source": "the requested data, or show appropriate error messages.",
- "coverage": ""
- },
- "6": {
- "source": "",
- "coverage": ""
- },
- "7": {
- "source": "If fetch() is not defined on the resource, there will be no ",
- "coverage": ""
- },
- "8": {
- "source": "effect all.",
- "coverage": ""
- },
- "9": {
- "source": "",
- "coverage": ""
- },
- "10": {
- "source": "If you find that you want to do your own error handling, this",
- "coverage": ""
- },
- "11": {
- "source": "helper is probably unnecessary as it will do little ",
- "coverage": ""
- },
- "12": {
- "source": "else other than setting req.fetched for you.",
- "coverage": ""
- },
- "13": {
- "source": "",
- "coverage": ""
- },
- "14": {
- "source": "*/",
- "coverage": ""
- },
- "15": {
- "source": "",
- "coverage": ""
- },
- "16": {
- "source": "",
- "coverage": ""
- },
- "17": {
- "source": "",
- "coverage": ""
- },
- "18": {
- "source": "var FetchHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "19": {
- "source": "",
- "coverage": ""
- },
- "20": {
- "source": " if (!req.fetched && !!handler.fetch && (typeof(handler.fetch) == 'function')){",
- "coverage": 29
- },
- "21": {
- "source": " if (req.method !== \"PUT\" || handler.fetchOnPUT !== false){",
- "coverage": 8
- },
- "22": {
- "source": " handler.fetch(req, res, function(err, fetched){",
- "coverage": 7
- },
- "23": {
- "source": " if (err === true){",
- "coverage": 6
- },
- "24": {
- "source": " // if it returns an error, throw a 404",
- "coverage": ""
- },
- "25": {
- "source": " return res.status.notFound(req.url);",
- "coverage": 2
- },
- "26": {
- "source": " }",
- "coverage": ""
- },
- "27": {
- "source": " if (!!err){",
- "coverage": 4
- },
- "28": {
- "source": " return res.status.internalServerError(err);",
- "coverage": 2
- },
- "29": {
- "source": " }",
- "coverage": ""
- },
- "30": {
- "source": " req.fetched = fetched;",
- "coverage": 2
- },
- "31": {
- "source": " return cb();",
- "coverage": 2
- },
- "32": {
- "source": " });",
- "coverage": ""
- },
- "33": {
- "source": " } else {",
- "coverage": ""
- },
- "34": {
- "source": " return cb();",
- "coverage": 1
- },
- "35": {
- "source": " }",
- "coverage": ""
- },
- "36": {
- "source": " } else {",
- "coverage": ""
- },
- "37": {
- "source": " return cb();",
- "coverage": 21
- },
- "38": {
- "source": " }",
- "coverage": ""
- },
- "39": {
- "source": "};",
- "coverage": ""
- },
- "40": {
- "source": "",
- "coverage": ""
- },
- "41": {
- "source": "module.exports = FetchHelper;",
- "coverage": 1
- },
- "42": {
- "source": "",
- "coverage": ""
- },
- "43": {
- "source": "",
- "coverage": ""
- },
- "44": {
- "source": "",
- "coverage": ""
- },
- "45": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/Object.js",
- "coverage": 53.57142857142857,
- "hits": 15,
- "misses": 13,
- "sloc": 28,
- "source": {
- "1": {
- "source": "/*",
- "coverage": ""
- },
- "2": {
- "source": " This helper adds a object function to the",
- "coverage": ""
- },
- "3": {
- "source": " object and callsback when done.",
- "coverage": ""
- },
- "4": {
- "source": "",
- "coverage": ""
- },
- "5": {
- "source": " The json function takes json object, and allows you to",
- "coverage": ""
- },
- "6": {
- "source": "manipulate it in various ways, and either send it as",
- "coverage": ""
- },
- "7": {
- "source": "a response ( .send() ), return it as a string ",
- "coverage": ""
- },
- "8": {
- "source": "( .toString() ), or return it as an object ( .toObject() ).",
- "coverage": ""
- },
- "9": {
- "source": "",
- "coverage": ""
- },
- "10": {
- "source": " */",
- "coverage": ""
- },
- "11": {
- "source": "",
- "coverage": ""
- },
- "12": {
- "source": "var HyperJson = require('../HyperJson');",
- "coverage": 1
- },
- "13": {
- "source": "var HyperJsonCollection = require('../HyperJsonCollection');",
- "coverage": 1
- },
- "14": {
- "source": "",
- "coverage": ""
- },
- "15": {
- "source": "var ObjectHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "16": {
- "source": " res.object = function(obj){",
- "coverage": 35
- },
- "17": {
- "source": " var json = new HyperJson(obj);",
- "coverage": 6
- },
- "18": {
- "source": " json.send = function(){send(req, res, json);};",
- "coverage": 12
- },
- "19": {
- "source": " return json;",
- "coverage": 6
- },
- "20": {
- "source": " };",
- "coverage": ""
- },
- "21": {
- "source": " res.collection = function(objArr, key){",
- "coverage": 35
- },
- "22": {
- "source": " var json = new HyperJsonCollection(objArr, key);",
- "coverage": 0
- },
- "23": {
- "source": " json.send = function(){send(req, res, json);};",
- "coverage": 0
- },
- "24": {
- "source": " return json;",
- "coverage": 0
- },
- "25": {
- "source": " };",
- "coverage": ""
- },
- "26": {
- "source": " if (cb){",
- "coverage": 35
- },
- "27": {
- "source": " cb();",
- "coverage": 0
- },
- "28": {
- "source": " }",
- "coverage": ""
- },
- "29": {
- "source": "};",
- "coverage": ""
- },
- "30": {
- "source": "",
- "coverage": ""
- },
- "31": {
- "source": "",
- "coverage": ""
- },
- "32": {
- "source": "module.exports = ObjectHelper;",
- "coverage": 1
- },
- "33": {
- "source": "",
- "coverage": ""
- },
- "34": {
- "source": "function send(req, res, json){",
- "coverage": 1
- },
- "35": {
- "source": " if (req.app.autoLink){",
- "coverage": 6
- },
- "36": {
- "source": " addDefaultLinks(req, res, json);",
- "coverage": 0
- },
- "37": {
- "source": " }",
- "coverage": ""
- },
- "38": {
- "source": " res.setHeader('content-type', 'application/json');",
- "coverage": 6
- },
- "39": {
- "source": " res.end(json.toString());",
- "coverage": 6
- },
- "40": {
- "source": "}",
- "coverage": ""
- },
- "41": {
- "source": "",
- "coverage": ""
- },
- "42": {
- "source": "function addDefaultLinks(req, res, json){",
- "coverage": 1
- },
- "43": {
- "source": " var current = json.toObject();",
- "coverage": 0
- },
- "44": {
- "source": " if (!current._links || !current._links.parent){",
- "coverage": 0
- },
- "45": {
- "source": " try {",
- "coverage": 0
- },
- "46": {
- "source": " var parent = req.uri.parent();",
- "coverage": 0
- },
- "47": {
- "source": " json.link('parent', parent);",
- "coverage": 0
- },
- "48": {
- "source": " } catch(ex){",
- "coverage": ""
- },
- "49": {
- "source": " if (ex.message !== \"The given path has no parent path\"){",
- "coverage": 0
- },
- "50": {
- "source": " throw ex;",
- "coverage": 0
- },
- "51": {
- "source": " }",
- "coverage": ""
- },
- "52": {
- "source": " }",
- "coverage": ""
- },
- "53": {
- "source": " }",
- "coverage": ""
- },
- "54": {
- "source": " return current;",
- "coverage": 0
- },
- "55": {
- "source": "}",
- "coverage": ""
- },
- "56": {
- "source": "",
- "coverage": ""
- },
- "57": {
- "source": "",
- "coverage": ""
- },
- "58": {
- "source": "",
- "coverage": ""
- },
- "59": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/onBody.js",
- "coverage": 100,
- "hits": 12,
- "misses": 0,
- "sloc": 12,
- "source": {
- "1": {
- "source": "/*",
- "coverage": ""
- },
- "2": {
- "source": " This helper just adds an onBody function to the",
- "coverage": ""
- },
- "3": {
- "source": " req and calls back when done.",
- "coverage": ""
- },
- "4": {
- "source": "",
- "coverage": ""
- },
- "5": {
- "source": " The onBody function takes a callback in the form",
- "coverage": ""
- },
- "6": {
- "source": " function(err, body){ ...",
- "coverage": ""
- },
- "7": {
- "source": " where error is an error that may have occurred and body",
- "coverage": ""
- },
- "8": {
- "source": " is the entire body of the request.",
- "coverage": ""
- },
- "9": {
- "source": "",
- "coverage": ""
- },
- "10": {
- "source": " onBody is useful when you don't care about streaming the",
- "coverage": ""
- },
- "11": {
- "source": " body and would rather just wait to get the whole thing to",
- "coverage": ""
- },
- "12": {
- "source": " do any processiong.",
- "coverage": ""
- },
- "13": {
- "source": "",
- "coverage": ""
- },
- "14": {
- "source": " */",
- "coverage": ""
- },
- "15": {
- "source": "",
- "coverage": ""
- },
- "16": {
- "source": "",
- "coverage": ""
- },
- "17": {
- "source": "var onBodyHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "18": {
- "source": " req.onBody = function(onBodyCB){",
- "coverage": 13
- },
- "19": {
- "source": " var body = '';",
- "coverage": 3
- },
- "20": {
- "source": " req.on('data', function(data){",
- "coverage": 3
- },
- "21": {
- "source": " body += data;",
- "coverage": 3
- },
- "22": {
- "source": " });",
- "coverage": ""
- },
- "23": {
- "source": " req.on('error', function(err){",
- "coverage": 3
- },
- "24": {
- "source": " return onBodyCB(err, body);",
- "coverage": 1
- },
- "25": {
- "source": " });",
- "coverage": ""
- },
- "26": {
- "source": " req.on('end', function(){",
- "coverage": 3
- },
- "27": {
- "source": " return onBodyCB(null, body);",
- "coverage": 2
- },
- "28": {
- "source": " });",
- "coverage": ""
- },
- "29": {
- "source": " };",
- "coverage": ""
- },
- "30": {
- "source": " if (cb){",
- "coverage": 13
- },
- "31": {
- "source": " cb();",
- "coverage": 13
- },
- "32": {
- "source": " }",
- "coverage": ""
- },
- "33": {
- "source": "};",
- "coverage": ""
- },
- "34": {
- "source": "",
- "coverage": ""
- },
- "35": {
- "source": "",
- "coverage": ""
- },
- "36": {
- "source": "module.exports = onBodyHelper;",
- "coverage": 1
- },
- "37": {
- "source": "",
- "coverage": ""
- },
- "38": {
- "source": "",
- "coverage": ""
- },
- "39": {
- "source": "",
- "coverage": ""
- },
- "40": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "ContextHelpers/onJson.js",
- "coverage": 100,
- "hits": 30,
- "misses": 0,
- "sloc": 30,
- "source": {
- "1": {
- "source": "/*",
- "coverage": ""
- },
- "2": {
- "source": " This helper just adds an onJson function to the",
- "coverage": ""
- },
- "3": {
- "source": " req and calls back when done.",
- "coverage": ""
- },
- "4": {
- "source": "",
- "coverage": ""
- },
- "5": {
- "source": " As a last or only parameter, the onJson function takes a ",
- "coverage": ""
- },
- "6": {
- "source": " callback in the form:",
- "coverage": ""
- },
- "7": {
- "source": " function(err, body){ ...",
- "coverage": ""
- },
- "8": {
- "source": " where error is an error that may have occurred and body",
- "coverage": ""
- },
- "9": {
- "source": " is the entire body of the request.",
- "coverage": ""
- },
- "10": {
- "source": "",
- "coverage": ""
- },
- "11": {
- "source": " An optional first parameter representing a json schema as",
- "coverage": ""
- },
- "12": {
- "source": " an object is also allowed. If specified it will be used ",
- "coverage": ""
- },
- "13": {
- "source": " for validation.",
- "coverage": ""
- },
- "14": {
- "source": "",
- "coverage": ""
- },
- "15": {
- "source": " */",
- "coverage": ""
- },
- "16": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "17": {
- "source": "var JSV = require('JSV').JSV;",
- "coverage": 1
- },
- "18": {
- "source": "",
- "coverage": ""
- },
- "19": {
- "source": "var onJsonHelper = function(req, res, handler, cb){",
- "coverage": 1
- },
- "20": {
- "source": " req.onJson = function(){",
- "coverage": 17
- },
- "21": {
- "source": "",
- "coverage": ""
- },
- "22": {
- "source": " var args = _.toArray(arguments);",
- "coverage": 6
- },
- "23": {
- "source": " var schema, onBodyCB;",
- "coverage": 6
- },
- "24": {
- "source": " switch(args.length){",
- "coverage": 6
- },
- "25": {
- "source": " case 1:",
- "coverage": ""
- },
- "26": {
- "source": " onBodyCB = args[0];",
- "coverage": 3
- },
- "27": {
- "source": " break;",
- "coverage": 3
- },
- "28": {
- "source": "",
- "coverage": ""
- },
- "29": {
- "source": " case 2:",
- "coverage": ""
- },
- "30": {
- "source": " schema = args[0];",
- "coverage": 2
- },
- "31": {
- "source": " onBodyCB = args[1];",
- "coverage": 2
- },
- "32": {
- "source": " break;",
- "coverage": 2
- },
- "33": {
- "source": "",
- "coverage": ""
- },
- "34": {
- "source": " default : throw \"req.onJson() was called with the wrong number of properties.\";",
- "coverage": 1
- },
- "35": {
- "source": " }",
- "coverage": ""
- },
- "36": {
- "source": "",
- "coverage": ""
- },
- "37": {
- "source": " var body = '';",
- "coverage": 5
- },
- "38": {
- "source": " req.on('data', function(data){",
- "coverage": 5
- },
- "39": {
- "source": " body += data;",
- "coverage": 5
- },
- "40": {
- "source": " });",
- "coverage": ""
- },
- "41": {
- "source": " req.on('error', function(err){",
- "coverage": 5
- },
- "42": {
- "source": " return onBodyCB(err, body);",
- "coverage": 1
- },
- "43": {
- "source": " });",
- "coverage": ""
- },
- "44": {
- "source": " req.on('end', function(){",
- "coverage": 5
- },
- "45": {
- "source": " var obj;",
- "coverage": 4
- },
- "46": {
- "source": " try {",
- "coverage": 4
- },
- "47": {
- "source": " obj = JSON.parse(body);",
- "coverage": 4
- },
- "48": {
- "source": " } catch(ex) {",
- "coverage": ""
- },
- "49": {
- "source": " // if it's not valid JSON...",
- "coverage": ""
- },
- "50": {
- "source": " return res.status.badRequest('invalid json.', body);",
- "coverage": 1
- },
- "51": {
- "source": " }",
- "coverage": ""
- },
- "52": {
- "source": " if (!!schema){",
- "coverage": 3
- },
- "53": {
- "source": " var report = JSV.createEnvironment().validate(obj, schema);",
- "coverage": 2
- },
- "54": {
- "source": " if (report.errors.length > 0){",
- "coverage": 2
- },
- "55": {
- "source": " return res.status.badRequest('json failed schema validation.', report.errors);",
- "coverage": 2
- },
- "56": {
- "source": " }",
- "coverage": ""
- },
- "57": {
- "source": " }",
- "coverage": ""
- },
- "58": {
- "source": "",
- "coverage": ""
- },
- "59": {
- "source": " return onBodyCB(null, obj);",
- "coverage": 1
- },
- "60": {
- "source": " });",
- "coverage": ""
- },
- "61": {
- "source": "",
- "coverage": ""
- },
- "62": {
- "source": " };",
- "coverage": ""
- },
- "63": {
- "source": " cb();",
- "coverage": 17
- },
- "64": {
- "source": "};",
- "coverage": ""
- },
- "65": {
- "source": "",
- "coverage": ""
- },
- "66": {
- "source": "",
- "coverage": ""
- },
- "67": {
- "source": "module.exports = onJsonHelper;",
- "coverage": 1
- },
- "68": {
- "source": "",
- "coverage": ""
- },
- "69": {
- "source": "",
- "coverage": ""
- },
- "70": {
- "source": "",
- "coverage": ""
- },
- "71": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "HyperJson.js",
- "coverage": 100,
- "hits": 27,
- "misses": 0,
- "sloc": 27,
- "source": {
- "1": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "2": {
- "source": "",
- "coverage": ""
- },
- "3": {
- "source": "HyperJson = function(obj){",
- "coverage": 1
- },
- "4": {
- "source": " this.obj = _.clone(obj);",
- "coverage": 17
- },
- "5": {
- "source": "};",
- "coverage": ""
- },
- "6": {
- "source": "",
- "coverage": ""
- },
- "7": {
- "source": "HyperJson.prototype.toString = function(){",
- "coverage": 1
- },
- "8": {
- "source": " return JSON.stringify(this.obj);",
- "coverage": 7
- },
- "9": {
- "source": "};",
- "coverage": ""
- },
- "10": {
- "source": "",
- "coverage": ""
- },
- "11": {
- "source": "HyperJson.prototype.toObject = function(){",
- "coverage": 1
- },
- "12": {
- "source": " return this.obj;",
- "coverage": 17
- },
- "13": {
- "source": "};",
- "coverage": ""
- },
- "14": {
- "source": "",
- "coverage": ""
- },
- "15": {
- "source": "HyperJson.prototype.property =function(name, value){",
- "coverage": 1
- },
- "16": {
- "source": " this.obj[name] = value;",
- "coverage": 1
- },
- "17": {
- "source": " return this;",
- "coverage": 1
- },
- "18": {
- "source": "};",
- "coverage": ""
- },
- "19": {
- "source": "",
- "coverage": ""
- },
- "20": {
- "source": "HyperJson.prototype.link = function(rel, href, opts){",
- "coverage": 1
- },
- "21": {
- "source": " var options = opts || {};",
- "coverage": 8
- },
- "22": {
- "source": " var linkObj = { href : href};",
- "coverage": 8
- },
- "23": {
- "source": " for (var name in options){",
- "coverage": 8
- },
- "24": {
- "source": " if (name != 'method' && name != 'type' && name != 'schema'){",
- "coverage": 4
- },
- "25": {
- "source": " throw \"unknown option: \" + name;",
- "coverage": 1
- },
- "26": {
- "source": " }",
- "coverage": ""
- },
- "27": {
- "source": " linkObj[name] = options[name];",
- "coverage": 3
- },
- "28": {
- "source": " }",
- "coverage": ""
- },
- "29": {
- "source": " if (!this.obj._links){",
- "coverage": 7
- },
- "30": {
- "source": " this.obj._links = {};",
- "coverage": 6
- },
- "31": {
- "source": " }",
- "coverage": ""
- },
- "32": {
- "source": " if (!this.obj._links[rel]){",
- "coverage": 7
- },
- "33": {
- "source": " this.obj._links[rel] = linkObj;",
- "coverage": 6
- },
- "34": {
- "source": " } else {",
- "coverage": ""
- },
- "35": {
- "source": " var relObj = this.obj._links[rel];",
- "coverage": 1
- },
- "36": {
- "source": " if (!Array.isArray(relObj)){",
- "coverage": 1
- },
- "37": {
- "source": " this.obj._links[rel] = [relObj];",
- "coverage": 1
- },
- "38": {
- "source": " }",
- "coverage": ""
- },
- "39": {
- "source": " this.obj._links[rel].push(linkObj);",
- "coverage": 1
- },
- "40": {
- "source": " }",
- "coverage": ""
- },
- "41": {
- "source": " return this;",
- "coverage": 7
- },
- "42": {
- "source": "};",
- "coverage": ""
- },
- "43": {
- "source": "",
- "coverage": ""
- },
- "44": {
- "source": "module.exports = HyperJson;",
- "coverage": 1
- },
- "45": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "HyperJsonCollection.js",
- "coverage": 100,
- "hits": 32,
- "misses": 0,
- "sloc": 32,
- "source": {
- "1": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "2": {
- "source": "var HyperJson = require('./HyperJson');",
- "coverage": 1
- },
- "3": {
- "source": "",
- "coverage": ""
- },
- "4": {
- "source": "HyperJsonCollection = function(obj, key){",
- "coverage": 1
- },
- "5": {
- "source": " obj = _.clone(obj);",
- "coverage": 8
- },
- "6": {
- "source": " if (_.isArray(obj)){",
- "coverage": 8
- },
- "7": {
- "source": " if (!!key){",
- "coverage": 4
- },
- "8": {
- "source": " var newObj = {};",
- "coverage": 1
- },
- "9": {
- "source": " var index = 0;",
- "coverage": 1
- },
- "10": {
- "source": " _.each(obj, function(item){",
- "coverage": 1
- },
- "11": {
- "source": " newObj[item[key]] = item;",
- "coverage": 2
- },
- "12": {
- "source": " });",
- "coverage": ""
- },
- "13": {
- "source": " obj = newObj;",
- "coverage": 1
- },
- "14": {
- "source": " }",
- "coverage": ""
- },
- "15": {
- "source": " }",
- "coverage": ""
- },
- "16": {
- "source": " this.obj = { _items : obj};",
- "coverage": 8
- },
- "17": {
- "source": "};",
- "coverage": ""
- },
- "18": {
- "source": "",
- "coverage": ""
- },
- "19": {
- "source": "HyperJsonCollection.prototype = Object.create(HyperJson.prototype);",
- "coverage": 1
- },
- "20": {
- "source": "",
- "coverage": ""
- },
- "21": {
- "source": "HyperJsonCollection.prototype.each = function(cb){",
- "coverage": 1
- },
- "22": {
- "source": " var items = this.obj._items;",
- "coverage": 3
- },
- "23": {
- "source": " if (Array.isArray(items)){",
- "coverage": 3
- },
- "24": {
- "source": " var len = (!!items) ? items.length : 0;",
- "coverage": 1
- },
- "25": {
- "source": " for(var i = 0; i < len; i++){",
- "coverage": 1
- },
- "26": {
- "source": " items[i] = cb(items[i]);",
- "coverage": 2
- },
- "27": {
- "source": " }",
- "coverage": ""
- },
- "28": {
- "source": " } else {",
- "coverage": ""
- },
- "29": {
- "source": " for(var x in items){",
- "coverage": 2
- },
- "30": {
- "source": " items[x] = cb(_.clone(items[x]), x);",
- "coverage": 3
- },
- "31": {
- "source": " }",
- "coverage": ""
- },
- "32": {
- "source": " }",
- "coverage": ""
- },
- "33": {
- "source": " return this;",
- "coverage": 3
- },
- "34": {
- "source": "};",
- "coverage": ""
- },
- "35": {
- "source": "",
- "coverage": ""
- },
- "36": {
- "source": "HyperJsonCollection.prototype.linkEach = function(rel, cb){",
- "coverage": 1
- },
- "37": {
- "source": " var items = this.obj._items;",
- "coverage": 2
- },
- "38": {
- "source": " if (Array.isArray(items)){",
- "coverage": 2
- },
- "39": {
- "source": " var len = (!!items) ? items.length : 0;",
- "coverage": 1
- },
- "40": {
- "source": " for(var i = 0; i < len; i++){",
- "coverage": 1
- },
- "41": {
- "source": " items[i] = new HyperJson(_.clone(items[i])).link(rel, cb(items[i], i)).toObject();",
- "coverage": 2
- },
- "42": {
- "source": " }",
- "coverage": ""
- },
- "43": {
- "source": " } else {",
- "coverage": ""
- },
- "44": {
- "source": " for(var x in items){",
- "coverage": 1
- },
- "45": {
- "source": " items[x] = new HyperJson(_.clone(items[x])).link(rel, cb(items[x], x)).toObject();",
- "coverage": 2
- },
- "46": {
- "source": " }",
- "coverage": ""
- },
- "47": {
- "source": " }",
- "coverage": ""
- },
- "48": {
- "source": " return this;",
- "coverage": 2
- },
- "49": {
- "source": "};",
- "coverage": ""
- },
- "50": {
- "source": "",
- "coverage": ""
- },
- "51": {
- "source": "module.exports = HyperJsonCollection;",
- "coverage": 1
- },
- "52": {
- "source": "",
- "coverage": ""
- },
- "53": {
- "source": "",
- "coverage": ""
- }
- }
- },
- {
- "filename": "JsonResponder.js",
- "coverage": 100,
- "hits": 47,
- "misses": 0,
- "sloc": 47,
- "source": {
- "1": {
- "source": "var EventEmitter = require('events').EventEmitter;",
- "coverage": 1
- },
- "2": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "3": {
- "source": "",
- "coverage": ""
- },
- "4": {
- "source": "var util = require('util');",
- "coverage": 1
- },
- "5": {
- "source": "",
- "coverage": ""
- },
- "6": {
- "source": "var JsonResponder = function(req, res){",
- "coverage": 1
- },
- "7": {
- "source": " this.req = req;",
- "coverage": 53
- },
- "8": {
- "source": " this.res = res;",
- "coverage": 53
- },
- "9": {
- "source": "};",
- "coverage": ""
- },
- "10": {
- "source": "JsonResponder.prototype = Object.create(EventEmitter.prototype);",
- "coverage": 1
- },
- "11": {
- "source": "",
- "coverage": ""
- },
- "12": {
- "source": "var errors = {",
- "coverage": 1
- },
- "13": {
- "source": " 'badRequest' : {type : 400, message : 'Bad Request'},",
- "coverage": ""
- },
- "14": {
- "source": " 'unauthenticated' : {type : 401, message : 'Unauthenticated'},",
- "coverage": ""
- },
- "15": {
- "source": " 'forbidden' : {type : 403, message : 'Forbidden'},",
- "coverage": ""
- },
- "16": {
- "source": " 'notFound' : {type : 404, message : 'Not Found'},",
- "coverage": ""
- },
- "17": {
- "source": " 'methodNotAllowed' : {type : 405, message : 'Method Not Allowed'},",
- "coverage": ""
- },
- "18": {
- "source": " 'notAcceptable' : {type : 406, message : 'Not Acceptable'},",
- "coverage": ""
- },
- "19": {
- "source": " 'conflict' : {type : 409, message : 'Conflict'},",
- "coverage": ""
- },
- "20": {
- "source": " 'gone' : {type : 410, message : 'Gone'},",
- "coverage": ""
- },
- "21": {
- "source": " 'lengthRequired' : {type : 411, message : 'Length Required'},",
- "coverage": ""
- },
- "22": {
- "source": " 'preconditionFailed' : {type : 412, message : 'Precondition Failed'},",
- "coverage": ""
- },
- "23": {
- "source": " 'requestEntityTooLarge' : {type : 413, message : 'Request Entity Too Large'},",
- "coverage": ""
- },
- "24": {
- "source": " 'requestUriTooLong' : {type : 414, message : 'Request URI Too Long'},",
- "coverage": ""
- },
- "25": {
- "source": " 'unsupportedMediaType' : {type : 415, message : 'Unsupported Media Type'},",
- "coverage": ""
- },
- "26": {
- "source": " 'unprocessableEntity' : {type : 422, message : 'Unprocessable Entity'},",
- "coverage": ""
- },
- "27": {
- "source": " 'tooManyRequests' : {type : 429, message : 'Too Many Requests'},",
- "coverage": ""
- },
- "28": {
- "source": " 'internalServerError' : {type : 500, message : 'Internal Server Error'},",
- "coverage": ""
- },
- "29": {
- "source": " 'notImplemented' : {type : 501, message : 'Not Implemented'},",
- "coverage": ""
- },
- "30": {
- "source": " 'badGateway' : {type : 502, message : 'Bad Gateway'},",
- "coverage": ""
- },
- "31": {
- "source": " 'serviceUnavailable' : {type : 503, message : 'Service Unavailable'},",
- "coverage": ""
- },
- "32": {
- "source": " 'gatewayTimeout' : {type : 504, message : 'Gateway Timeout'}",
- "coverage": ""
- },
- "33": {
- "source": "};",
- "coverage": ""
- },
- "34": {
- "source": "",
- "coverage": ""
- },
- "35": {
- "source": "",
- "coverage": ""
- },
- "36": {
- "source": "/* set methods on the JsonResponder for every kind of error that could occur. */",
- "coverage": ""
- },
- "37": {
- "source": "_.each(errors, function(v, k){",
- "coverage": 1
- },
- "38": {
- "source": " JsonResponder.prototype[k] = function(detail){",
- "coverage": 20
- },
- "39": {
- "source": " var obj = {\"error\" : v};",
- "coverage": 12
- },
- "40": {
- "source": "",
- "coverage": ""
- },
- "41": {
- "source": " detail = detail || {};",
- "coverage": 12
- },
- "42": {
- "source": " // if detail is circular, just flatten it to a string.",
- "coverage": ""
- },
- "43": {
- "source": " try {",
- "coverage": 12
- },
- "44": {
- "source": " JSON.stringify(detail); // will throw if circular",
- "coverage": 12
- },
- "45": {
- "source": " } catch(ex) {",
- "coverage": ""
- },
- "46": {
- "source": " detail = util.inspect(detail); // stringifies. only goes one level deep.",
- "coverage": 1
- },
- "47": {
- "source": " }",
- "coverage": ""
- },
- "48": {
- "source": "",
- "coverage": ""
- },
- "49": {
- "source": " obj.error.detail = detail;",
- "coverage": 12
- },
- "50": {
- "source": "",
- "coverage": ""
- },
- "51": {
- "source": " this.res.setHeader('Content-Type', 'application/json');",
- "coverage": 12
- },
- "52": {
- "source": " this.res.writeHead(v.type);",
- "coverage": 12
- },
- "53": {
- "source": " var out = JSON.stringify(obj);",
- "coverage": 12
- },
- "54": {
- "source": " this.res.end(out);",
- "coverage": 12
- },
- "55": {
- "source": " this.emit(\"error\", { req : this.req, res : this.res, type : v.type, message : v.message, detail : detail } );",
- "coverage": 12
- },
- "56": {
- "source": " };",
- "coverage": ""
- },
- "57": {
- "source": "});",
- "coverage": ""
- },
- "58": {
- "source": "",
- "coverage": ""
- },
- "59": {
- "source": "JsonResponder.prototype.created = function(url){",
- "coverage": 1
- },
- "60": {
- "source": " url = url || '';",
- "coverage": 1
- },
- "61": {
- "source": " this.res.setHeader('Location', url);",
- "coverage": 1
- },
- "62": {
- "source": " this.res.writeHead(201);",
- "coverage": 1
- },
- "63": {
- "source": " this.res.end();",
- "coverage": 1
- },
- "64": {
- "source": "};",
- "coverage": ""
- },
- "65": {
- "source": "",
- "coverage": ""
- },
- "66": {
- "source": "JsonResponder.prototype.accepted = function(){",
- "coverage": 1
- },
- "67": {
- "source": " this.res.writeHead(202);",
- "coverage": 1
- },
- "68": {
- "source": " this.res.end();",
- "coverage": 1
- },
- "69": {
- "source": "};",
- "coverage": ""
- },
- "70": {
- "source": "",
- "coverage": ""
- },
- "71": {
- "source": "JsonResponder.prototype.noContent = function(){",
- "coverage": 1
- },
- "72": {
- "source": " this.res.writeHead(204);",
- "coverage": 1
- },
- "73": {
- "source": " this.res.end();",
- "coverage": 1
- },
- "74": {
- "source": "};",
- "coverage": ""
- },
- "75": {
- "source": "",
- "coverage": ""
- },
- "76": {
- "source": "JsonResponder.prototype.resetContent = function(){",
- "coverage": 1
- },
- "77": {
- "source": " this.res.writeHead(205);",
- "coverage": 1
- },
- "78": {
- "source": " this.res.end();",
- "coverage": 1
- },
- "79": {
- "source": "};",
- "coverage": ""
- },
- "80": {
- "source": "",
- "coverage": ""
- },
- "81": {
- "source": "JsonResponder.prototype.movedPermanently = function(url){",
- "coverage": 1
- },
- "82": {
- "source": " this.redirect(url);",
- "coverage": 2
- },
- "83": {
- "source": "};",
- "coverage": ""
- },
- "84": {
- "source": "",
- "coverage": ""
- },
- "85": {
- "source": "JsonResponder.prototype.redirect = function(url){",
- "coverage": 1
- },
- "86": {
- "source": " url = url || '';",
- "coverage": 2
- },
- "87": {
- "source": " this.res.setHeader('Location', url);",
- "coverage": 2
- },
- "88": {
- "source": " this.res.writeHead(301);",
- "coverage": 2
- },
- "89": {
- "source": " this.res.end();",
- "coverage": 2
- },
- "90": {
- "source": "};",
- "coverage": ""
- },
- "91": {
- "source": "",
- "coverage": ""
- },
- "92": {
- "source": "JsonResponder.prototype.OPTIONS = function(methods){",
- "coverage": 1
- },
- "93": {
- "source": " this.res.setHeader('Allow', methods.join(\",\"));",
- "coverage": 2
- },
- "94": {
- "source": " this.res.writeHead(200);",
- "coverage": 2
- },
- "95": {
- "source": " return this.res.end(JSON.stringify({\"allowed methods\" : methods}));",
- "coverage": 2
- },
- "96": {
- "source": "};",
- "coverage": ""
- },
- "97": {
- "source": "",
- "coverage": ""
- },
- "98": {
- "source": "",
- "coverage": ""
- },
- "99": {
- "source": "module.exports = JsonResponder;",
- "coverage": 1
- }
- }
- },
- {
- "filename": "Percolator.js",
- "coverage": 92.25806451612904,
- "hits": 143,
- "misses": 12,
- "sloc": 155,
- "source": {
- "1": {
- "source": "var Reaper = require('reaper').Reaper;",
- "coverage": 1
- },
- "2": {
- "source": "var EventEmitter = require('events').EventEmitter;",
- "coverage": 1
- },
- "3": {
- "source": "var index = require('../index');",
- "coverage": 1
- },
- "4": {
- "source": "var JsonResponder = index.JsonResponder;",
- "coverage": 1
- },
- "5": {
- "source": "var onBodyHelper = index.onBodyHelper;",
- "coverage": 1
- },
- "6": {
- "source": "var onJsonHelper = index.onJsonHelper;",
- "coverage": 1
- },
- "7": {
- "source": "var fetchHelper = index.FetchHelper;",
- "coverage": 1
- },
- "8": {
- "source": "var AuthenticateHelper = index.AuthenticateHelper;",
- "coverage": 1
- },
- "9": {
- "source": "var ObjectHelper = index.ObjectHelper;",
- "coverage": 1
- },
- "10": {
- "source": "var StatusManager = index.StatusManager;",
- "coverage": 1
- },
- "11": {
- "source": "var _ = require('underscore');",
- "coverage": 1
- },
- "12": {
- "source": "var fs = require('fs');",
- "coverage": 1
- },
- "13": {
- "source": "var Server = require('oneone');",
- "coverage": 1
- },
- "14": {
- "source": "var hyperjsonBrowser = require('hyperjson-browser');",
- "coverage": 1
- },
- "15": {
- "source": "var urlgrey = require('urlgrey');",
- "coverage": 1
- },
- "16": {
- "source": "",
- "coverage": ""
- },
- "17": {
- "source": "",
- "coverage": ""
- },
- "18": {
- "source": "Percolator = function(options){",
- "coverage": 1
- },
- "19": {
- "source": " options = options || {};",
- "coverage": 20
- },
- "20": {
- "source": " this.options = options;",
- "coverage": 20
- },
- "21": {
- "source": " this.options.port = this.options.port || 3000;",
- "coverage": 20
- },
- "22": {
- "source": " if (this.options.autoLink !== false){",
- "coverage": 20
- },
- "23": {
- "source": " this.options.autoLink = true;",
- "coverage": 20
- },
- "24": {
- "source": " }",
- "coverage": ""
- },
- "25": {
- "source": " this.options.protocol = this.options.protocol || 'http';",
- "coverage": 20
- },
- "26": {
- "source": " this.options.resourcePath = this.options.resourcePath || '/';",
- "coverage": 20
- },
- "27": {
- "source": " this.options.parseBody = this.options.parseBody || false;",
- "coverage": 20
- },
- "28": {
- "source": " this.port = this.options.port;",
- "coverage": 20
- },
- "29": {
- "source": " this.protocol = this.options.protocol;",
- "coverage": 20
- },
- "30": {
- "source": " this.resourcePath = this.options.resourcePath;",
- "coverage": 20
- },
- "31": {
- "source": " this.server = new Server(this.port, this.protocol, this.resourcePath);",
- "coverage": 20
- },
- "32": {
- "source": " if (!!options.staticDir){",
- "coverage": 20
- },
- "33": {
- "source": " this.staticDir = options.staticDir;",
- "coverage": 2
- },
- "34": {
- "source": " }",
- "coverage": ""
- },
- "35": {
- "source": " var protocol = this.protocol;",
- "coverage": 20
- },
- "36": {
- "source": " var that = this;",
- "coverage": 20
- },
- "37": {
- "source": " this.statusman = new StatusManager();",
- "coverage": 20
- },
- "38": {
- "source": " this.statusman.on('error', function(errorObject){",
- "coverage": 20
- },
- "39": {
- "source": " that.emit(\"errorResponse\", errorObject);",
- "coverage": 7
- },
- "40": {
- "source": " });",
- "coverage": ""
- },
- "41": {
- "source": " this.mediaTypes = new Reaper();",
- "coverage": 20
- },
- "42": {
- "source": " this.onRequestHandler = function(req, res, handler, cb){",
- "coverage": 20
- },
- "43": {
- "source": " cb(); // do nothing with it by default",
- "coverage": 13
- },
- "44": {
- "source": " };",
- "coverage": ""
- },
- "45": {
- "source": " this.onResponseHandler = function(req, res, handler){",
- "coverage": 20
- },
- "46": {
- "source": " // do nothing with it by default",
- "coverage": ""
- },
- "47": {
- "source": " };",
- "coverage": ""
- },
- "48": {
- "source": " this.server.onRequest(function(handler, context, cb){",
- "coverage": 20
- },
- "49": {
- "source": " var req = context.req;",
- "coverage": 14
- },
- "50": {
- "source": " var res = context.res;",
- "coverage": 14
- },
- "51": {
- "source": " req.app = that.options;",
- "coverage": 14
- },
- "52": {
- "source": " var router = that.server.router;",
- "coverage": 14
- },
- "53": {
- "source": " req.router = router; // TODO is there any use-case for this? delete?",
- "coverage": 14
- },
- "54": {
- "source": " req.uri = urlgrey(protocol + '://' + req.headers.host + req.url);",
- "coverage": 14
- },
- "55": {
- "source": " ObjectHelper(req, res);",
- "coverage": 14
- },
- "56": {
- "source": " res.status = that.statusman.createResponder(req, res);",
- "coverage": 14
- },
- "57": {
- "source": " var oldEnd = res.end;",
- "coverage": 14
- },
- "58": {
- "source": " res.end = function(data, encoding){",
- "coverage": 14
- },
- "59": {
- "source": " oldEnd.apply(res, [data, encoding]);",
- "coverage": 14
- },
- "60": {
- "source": " that.onResponseHandler(req, res, handler);",
- "coverage": 14
- },
- "61": {
- "source": " };",
- "coverage": ""
- },
- "62": {
- "source": " that.onRequestHandler(req, res, handler, function(){",
- "coverage": 14
- },
- "63": {
- "source": " var accept = req.headers.accept || '*/*';",
- "coverage": 14
- },
- "64": {
- "source": " if (!that.mediaTypes.isAcceptable(accept)){",
- "coverage": 14
- },
- "65": {
- "source": " that.statusman.createResponder(req, res).notAcceptable();",
- "coverage": 0
- },
- "66": {
- "source": " } else {",
- "coverage": ""
- },
- "67": {
- "source": " that.defaultRequestHandler(req, res, handler, cb);",
- "coverage": 14
- },
- "68": {
- "source": " }",
- "coverage": ""
- },
- "69": {
- "source": " });",
- "coverage": ""
- },
- "70": {
- "source": " });",
- "coverage": ""
- },
- "71": {
- "source": " this._assignErrorHandlers();",
- "coverage": 20
- },
- "72": {
- "source": " this.registerMediaTypes();",
- "coverage": 20
- },
- "73": {
- "source": "",
- "coverage": ""
- },
- "74": {
- "source": " this.server.onOPTIONS(function(resource){",
- "coverage": 20
- },
- "75": {
- "source": " resource.OPTIONS = function($){",
- "coverage": 18
- },
- "76": {
- "source": " var responder = that.statusman.createResponder($.req, $.res);",
- "coverage": 1
- },
- "77": {
- "source": " return responder.OPTIONS(that._getMethods(resource));",
- "coverage": 1
- },
- "78": {
- "source": " };",
- "coverage": ""
- },
- "79": {
- "source": " return resource;",
- "coverage": 18
- },
- "80": {
- "source": " });",
- "coverage": ""
- },
- "81": {
- "source": "",
- "coverage": ""
- },
- "82": {
- "source": "};",
- "coverage": ""
- },
- "83": {
- "source": "",
- "coverage": ""
- },
- "84": {
- "source": "Percolator.prototype = Object.create(EventEmitter.prototype);",
- "coverage": 1
- },
- "85": {
- "source": "",
- "coverage": ""
- },
- "86": {
- "source": "Percolator.prototype.defaultRequestHandler = function(req, res, handler, cb){",
- "coverage": 1
- },
- "87": {
- "source": " var that = this;",
- "coverage": 14
- },
- "88": {
- "source": " req.pause();",
- "coverage": 14
- },
- "89": {
- "source": " AuthenticateHelper(req, res, handler, function(){",
- "coverage": 14
- },
- "90": {
- "source": " fetchHelper(req, res, handler, function(){",
- "coverage": 14
- },
- "91": {
- "source": " if (!!that.options.parseBody){",
- "coverage": 14
- },
- "92": {
- "source": " req.resume();",
- "coverage": 4
- },
- "93": {
- "source": " var ctxt = context(req, res);",
- "coverage": 4
- },
- "94": {
- "source": " that.mediaTypes.connectMiddleware(ctxt)(req, res, function(err){",
- "coverage": 4
- },
- "95": {
- "source": " req.body = ctxt.body;",
- "coverage": 4
- },
- "96": {
- "source": " req.rawBody = ctxt.rawBody;",
- "coverage": 4
- },
- "97": {
- "source": " if (!!err) {",
- "coverage": 4
- },
- "98": {
- "source": " if (err.match(/^Parse Error:/)){",
- "coverage": 3
- },
- "99": {
- "source": " that.statusman.createResponder(req, res).badRequest(err);",
- "coverage": 1
- },
- "100": {
- "source": " return;",
- "coverage": 1
- },
- "101": {
- "source": " }",
- "coverage": ""
- },
- "102": {
- "source": " if (err === \"Missing Content-Type\"){",
- "coverage": 2
- },
- "103": {
- "source": " that.statusman.createResponder(req, res).unsupportedMediaType(\"None provided.\");",
- "coverage": 1
- },
- "104": {
- "source": " return;",
- "coverage": 1
- },
- "105": {
- "source": " }",
- "coverage": ""
- },
- "106": {
- "source": " if (err === \"Unregistered content-type.\"){",
- "coverage": 1
- },
- "107": {
- "source": " that.statusman.createResponder(req, res).unsupportedMediaType(req.headers['content-type']);",
- "coverage": 1
- },
- "108": {
- "source": " return;",
- "coverage": 1
- },
- "109": {
- "source": " } ",
- "coverage": ""
- },
- "110": {
- "source": " console.log(\"post mediaTypes middleware error:\");",
- "coverage": 0
- },
- "111": {
- "source": " console.log(err);",
- "coverage": 0
- },
- "112": {
- "source": " return cb(err);",
- "coverage": 0
- },
- "113": {
- "source": " } else {",
- "coverage": ""
- },
- "114": {
- "source": " cb(null, context(req, res));",
- "coverage": 1
- },
- "115": {
- "source": " }",
- "coverage": ""
- },
- "116": {
- "source": " });",
- "coverage": ""
- },
- "117": {
- "source": " } else {",
- "coverage": ""
- },
- "118": {
- "source": " req.onBody = onBodyHelper(req, res, handler, function(){",
- "coverage": 10
- },
- "119": {
- "source": " req.onJson = onJsonHelper(req, res, handler, function(){",
- "coverage": 10
- },
- "120": {
- "source": " req.resume();",
- "coverage": 10
- },
- "121": {
- "source": " cb(null, context(req, res));",
- "coverage": 10
- },
- "122": {
- "source": " });",
- "coverage": ""
- },
- "123": {
- "source": " });",
- "coverage": ""
- },
- "124": {
- "source": " }",
- "coverage": ""
- },
- "125": {
- "source": " });",
- "coverage": ""
- },
- "126": {
- "source": " });",
- "coverage": ""
- },
- "127": {
- "source": "};",
- "coverage": ""
- },
- "128": {
- "source": "",
- "coverage": ""
- },
- "129": {
- "source": "",
- "coverage": ""
- },
- "130": {
- "source": "",
- "coverage": ""
- },
- "131": {
- "source": "Percolator.prototype.route = function(path, handler){",
- "coverage": 1
- },
- "132": {
- "source": " return this.server.route(path, handler);",
- "coverage": 18
- },
- "133": {
- "source": "};",
- "coverage": ""
- },
- "134": {
- "source": "",
- "coverage": ""
- },
- "135": {
- "source": "Percolator.prototype.before = function(handler){",
- "coverage": 1
- },
- "136": {
- "source": " this.onRequestHandler = handler;",
- "coverage": 1
- },
- "137": {
- "source": "};",
- "coverage": ""
- },
- "138": {
- "source": "",
- "coverage": ""
- },
- "139": {
- "source": "Percolator.prototype.after = function(handler){",
- "coverage": 1
- },
- "140": {
- "source": " this.onResponseHandler = handler;",
- "coverage": 1
- },
- "141": {
- "source": "};",
- "coverage": ""
- },
- "142": {
- "source": "",
- "coverage": ""
- },
- "143": {
- "source": "",
- "coverage": ""
- },
- "144": {
- "source": "Percolator.prototype._getMethods = function(resource){",
- "coverage": 1
- },
- "145": {
- "source": " var serverSupportedMethods = [\"GET\", \"POST\", ",
- "coverage": 1
- },
- "146": {
- "source": " \"PUT\", \"DELETE\",",
- "coverage": ""
- },
- "147": {
- "source": " \"HEAD\", \"OPTIONS\"];",
- "coverage": ""
- },
- "148": {
- "source": " var moduleMethods = _.functions(resource);",
- "coverage": 1
- },
- "149": {
- "source": " var methods = _.intersection(moduleMethods, serverSupportedMethods);",
- "coverage": 1
- },
- "150": {
- "source": " var additionalMethods = ['OPTIONS'];",
- "coverage": 1
- },
- "151": {
- "source": " if (_.isFunction(resource.GET)){",
- "coverage": 1
- },
- "152": {
- "source": " additionalMethods.push('HEAD');",
- "coverage": 1
- },
- "153": {
- "source": " }",
- "coverage": ""
- },
- "154": {
- "source": " methods = _.union(additionalMethods, methods);",
- "coverage": 1
- },
- "155": {
- "source": " return methods;",
- "coverage": 1
- },
- "156": {
- "source": "};",
- "coverage": ""
- },
- "157": {
- "source": "",
- "coverage": ""
- },
- "158": {
- "source": "// route a directory call the callback afterward",
- "coverage": ""
- },
- "159": {
- "source": "Percolator.prototype.routeDirectory = function(directory, path, cb){",
- "coverage": 1
- },
- "160": {
- "source": " this.server.routeDirectory(directory, path, cb);",
- "coverage": 0
- },
- "161": {
- "source": "};",
- "coverage": ""
- },
- "162": {
- "source": "",
- "coverage": ""
- },
- "163": {
- "source": "",
- "coverage": ""
- },
- "164": {
- "source": "// register error handlers for each content type",
- "coverage": ""
- },
- "165": {
- "source": "Percolator.prototype._assignErrorHandlers = function(){",
- "coverage": 1
- },
- "166": {
- "source": " // tell the server about the error handlers it can use",
- "coverage": ""
- },
- "167": {
- "source": " var statusman = this.statusman;",
- "coverage": 20
- },
- "168": {
- "source": " var that = this;",
- "coverage": 20
- },
- "169": {
- "source": "",
- "coverage": ""
- },
- "170": {
- "source": " this.server.on414(function($){",
- "coverage": 20
- },
- "171": {
- "source": " statusman.createResponder($.req, $.res).requestUriTooLong();",
- "coverage": 1
- },
- "172": {
- "source": " });",
- "coverage": ""
- },
- "173": {
- "source": "",
- "coverage": ""
- },
- "174": {
- "source": " this.server.on404(function($){",
- "coverage": 20
- },
- "175": {
- "source": " // TODO fix resource.fetch to use this handle404 instead of default!!!",
- "coverage": ""
- },
- "176": {
- "source": "",
- "coverage": ""
- },
- "177": {
- "source": " var path = that.options.resourcePath;",
- "coverage": 1
- },
- "178": {
- "source": " var browserPath = urlgrey(path).child('browser').path().toString();",
- "coverage": 1
- },
- "179": {
- "source": " hyperjsonBrowser(browserPath, path)($.req, $.res, function(){",
- "coverage": 1
- },
- "180": {
- "source": " var responder = statusman.createResponder($.req, $.res);",
- "coverage": 1
- },
- "181": {
- "source": " responder.notFound($.req.url);",
- "coverage": 1
- },
- "182": {
- "source": " });",
- "coverage": ""
- },
- "183": {
- "source": " });",
- "coverage": ""
- },
- "184": {
- "source": "",
- "coverage": ""
- },
- "185": {
- "source": " this.server.on405(function($){",
- "coverage": 20
- },
- "186": {
- "source": " statusman.createResponder($.req, $.res).methodNotAllowed();",
- "coverage": 1
- },
- "187": {
- "source": " });",
- "coverage": ""
- },
- "188": {
- "source": "",
- "coverage": ""
- },
- "189": {
- "source": " this.server.on501(function($){",
- "coverage": 20
- },
- "190": {
- "source": " statusman.createResponder($.req, $.res).notImplemented();",
- "coverage": 1
- },
- "191": {
- "source": " });",
- "coverage": ""
- },
- "192": {
- "source": "",
- "coverage": ""
- },
- "193": {
- "source": " this.server.on500(function(context, ex){",
- "coverage": 20
- },
- "194": {
- "source": " var req = context.req;",
- "coverage": 0
- },
- "195": {
- "source": " console.log(\"===============================\");",
- "coverage": 0
- },
- "196": {
- "source": " console.log(\"Uncaught Exception\");",
- "coverage": 0
- },
- "197": {
- "source": " console.log(ex);",
- "coverage": 0
- },
- "198": {
- "source": " console.log(req.method, ' ', req.url);",
- "coverage": 0
- },
- "199": {
- "source": " console.log(ex.stack);",
- "coverage": 0
- },
- "200": {
- "source": " statusman.createResponder(req, res).internalServerError();",
- "coverage": 0
- },
- "201": {
- "source": " });",
- "coverage": ""
- },
- "202": {
- "source": "",
- "coverage": ""
- },
- "203": {
- "source": "",
- "coverage": ""
- },
- "204": {
- "source": "};",
- "coverage": ""
- },
- "205": {
- "source": "",
- "coverage": ""
- },
- "206": {
- "source": "Percolator.prototype.registerMediaType = function(type, instr, outobj){",
- "coverage": 1
- },
- "207": {
- "source": " this.mediaTypes.register(type, instr, outobj);",
- "coverage": 20
- },
- "208": {
- "source": "};",
- "coverage": ""
- },
- "209": {
- "source": "",
- "coverage": ""
- },
- "210": {
- "source": "Percolator.prototype.registerStatusResponder = function(type, responder){",
- "coverage": 1
- },
- "211": {
- "source": " this.statusman.register(type, responder);",
- "coverage": 20
- },
- "212": {
- "source": "};",
- "coverage": ""
- },
- "213": {
- "source": "",
- "coverage": ""
- },
- "214": {
- "source": "Percolator.prototype.registerMediaTypes = function(){",
- "coverage": 1
- },
- "215": {
- "source": " var jsonType = require('./mediaTypes/json');",
- "coverage": 20
- },
- "216": {
- "source": " this.registerMediaType('application/json', jsonType.fromString, jsonType.toString);",
- "coverage": 20
- },
- "217": {
- "source": " this.registerStatusResponder('application/json', JsonResponder);",
- "coverage": 20
- },
- "218": {
- "source": "};",
- "coverage": ""
- },
- "219": {
- "source": "",
- "coverage": ""
- },
- "220": {
- "source": "",
- "coverage": ""
- },
- "221": {
- "source": "Percolator.prototype.listen = function(cb){",
- "coverage": 1
- },
- "222": {
- "source": " var that = this;",
- "coverage": 19
- },
- "223": {
- "source": " if (!!this.staticDir){",
- "coverage": 19
- },
- "224": {
- "source": " this.server.staticRoute(this.staticDir, function(err){",
- "coverage": 2
- },
- "225": {
- "source": " if (!!err){",
- "coverage": 2
- },
- "226": {
- "source": " cb(\"Your staticDir path could not be found.\");",
- "coverage": 1
- },
- "227": {
- "source": " }",
- "coverage": ""
- },
- "228": {
- "source": " that.server.listen(cb);",
- "coverage": 2
- },
- "229": {
- "source": " });",
- "coverage": ""
- },
- "230": {
- "source": " } else {",
- "coverage": ""
- },
- "231": {
- "source": " that.server.listen(cb);",
- "coverage": 17
- },
- "232": {
- "source": " }",
- "coverage": ""
- },
- "233": {
- "source": "};",
- "coverage": ""
- },
- "234": {
- "source": "",
- "coverage": ""
- },
- "235": {
- "source": "Percolator.prototype.close = function(cb){",
- "coverage": 1
- },
- "236": {
- "source": " this.server.close(cb);",
- "coverage": 39
- },
- "237": {
- "source": "};",
- "coverage": ""
- },
- "238": {
- "source": "",
- "coverage": ""
- },
- "239": {
- "source": "",
- "coverage": ""
- },
- "240": {
- "source": "// what about body parsing based on content-type?",
- "coverage": ""
- },
- "241": {
- "source": "// example \"accept only\" (throws errors for unsupported types ) ",
- "coverage": ""
- },
- "242": {
- "source": "// onBody(['application/json', application/xml'], function(err, type, body){ ... });",
- "coverage": ""
- },
- "243": {
- "source": "// example \"accept all types\"",
- "coverage": ""
- },
- "244": {
- "source": "// onBody(function(err, type, body){ ... });",
- "coverage": ""
- },
- "245": {
- "source": "// TODO: max-size parameter?",
- "coverage": ""
- },
- "246": {
- "source": "// TODO: whether parseBody is true or not, we should use the same handler either way.",
- "coverage": ""
- },
- "247": {
- "source": "",
- "coverage": ""
- },
- "248": {
- "source": "",
- "coverage": ""
- },
- "249": {
- "source": "module.exports = Percolator;",
- "coverage": 1
- },
- "250": {
- "source": "",
- "coverage": ""
- },
- "251": {
- "source": "",
- "coverage": ""
- },
- "252": {
- "source": "function context(req, res){",
- "coverage": 1
- },
- "253": {
- "source": " return {req : req, res : res};",
- "coverage": 15
- },
- "254": {
- "source": "}",
- "coverage": ""
- }
- }
- },
- {
- "filename": "StatusManager.js",
- "coverage": 100,
- "hits": 15,
- "misses": 0,
- "sloc": 15,
- "source": {
- "1": {
- "source": "_ = require('underscore');",
- "coverage": 1
- },
- "2": {
- "source": "JsonResponder = require('../index').JsonResponder;",
- "coverage": 1
- },
- "3": {
- "source": "var EventEmitter = require('events').EventEmitter;",
- "coverage": 1
- },
- "4": {
- "source": "",
- "coverage": ""
- },
- "5": {
- "source": "var StatusManager = function(){",
- "coverage": 1
- },
- "6": {
- "source": " this.registry = {};",
- "coverage": 42
- },
- "7": {
- "source": "};",
- "coverage": ""
- },
- "8": {
- "source": "",
- "coverage": ""
- },
- "9": {
- "source": "StatusManager.prototype = Object.create(EventEmitter.prototype);",
- "coverage": 1
- },
- "10": {
- "source": "",
- "coverage": ""
- },
- "11": {
- "source": "StatusManager.prototype.register = function(contentType, responder){",
- "coverage": 1
- },
- "12": {
- "source": " this.registry[contentType] = responder;",
- "coverage": 20
- },
- "13": {
- "source": "};",
- "coverage": ""
- },
- "14": {
- "source": "",
- "coverage": ""
- },
- "15": {
- "source": "StatusManager.prototype.createResponder = function(req, res){",
- "coverage": 1
- },
- "16": {
- "source": " // TODO make this do conneg and pick a responder from the registry!",
- "coverage": ""
- },
- "17": {
- "source": "",
- "coverage": ""
- },
- "18": {
- "source": " // TODO make default text/plain, text/html, application/xml,",
- "coverage": ""
- },
- "19": {
- "source": " // application/octet-sctream, form-url-encoded responders",
- "coverage": ""
- },
- "20": {
- "source": " var responder = new JsonResponder(req, res);",
- "coverage": 43
- },
- "21": {
- "source": " var that = this;",
- "coverage": 43
- },
- "22": {
- "source": " responder.on('error', function(data){",
- "coverage": 43
- },
- "23": {
- "source": " that.emit('error', data);",
- "coverage": 7
- },
- "24": {
- "source": " });",
- "coverage": ""
- },
- "25": {
- "source": " return responder;",
- "coverage": 43
- },
- "26": {
- "source": "};",
- "coverage": ""
- },
- "27": {
- "source": "",
- "coverage": ""
- },
- "28": {
- "source": "module.exports = StatusManager;",
- "coverage": 1
- }
- }
- },
- {
- "filename": "mediaTypes/json.js",
- "coverage": 75,
- "hits": 3,
- "misses": 1,
- "sloc": 4,
- "source": {
- "1": {
- "source": "",
- "coverage": ""
- },
- "2": {
- "source": "exports.fromString = function (str){",
- "coverage": 1
- },
- "3": {
- "source": " return JSON.parse(str);",
- "coverage": 2
- },
- "4": {
- "source": "};",
- "coverage": ""
- },
- "5": {
- "source": "",
- "coverage": ""
- },
- "6": {
- "source": "exports.toString = function(obj){",
- "coverage": 1
- },
- "7": {
- "source": " return JSON.stringify(obj);",
- "coverage": 0
- },
- "8": {
- "source": "};",
- "coverage": ""
- },
- "9": {
- "source": "",
- "coverage": ""
- }
- }
- }
- ],
- "stats": {
- "suites": 38,
- "tests": 107,
- "passes": 107,
- "pending": 0,
- "failures": 0,
- "start": "2013-03-15T01:00:32.918Z",
- "end": "2013-03-15T01:00:33.317Z",
- "duration": 399
- },
- "tests": [
- {
- "title": "does nothing if the handler has no basicAuthenticate method",
- "fullTitle": "BasicAuthenticateHelper does nothing if the handler has no basicAuthenticate method",
- "duration": 1
- },
- {
- "title": "runs the object's basicAuthenticate method if it has one",
- "fullTitle": "BasicAuthenticateHelper runs the object's basicAuthenticate method if it has one",
- "duration": 1
- },
- {
- "title": "sets authenticated on the object",
- "fullTitle": "BasicAuthenticateHelper sets authenticated on the object",
- "duration": 1
- },
- {
- "title": "sets returns 401 when the scheme is not basic",
- "fullTitle": "BasicAuthenticateHelper sets returns 401 when the scheme is not basic",
- "duration": 0
- },
- {
- "title": "responds with an unauthenticated status if Authorization header isn't there",
- "fullTitle": "BasicAuthenticateHelper responds with an unauthenticated status if Authorization header isn't there",
- "duration": 1
- },
- {
- "title": "responds with an unauthenticated status if the err is true",
- "fullTitle": "BasicAuthenticateHelper responds with an unauthenticated status if the err is true",
- "duration": 0
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "BasicAuthenticateHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "does nothing if the handler has no fetch method",
- "fullTitle": "FetchHelper does nothing if the handler has no fetch method",
- "duration": 1
- },
- {
- "title": "runs the object's fetch method if it has one",
- "fullTitle": "FetchHelper runs the object's fetch method if it has one",
- "duration": 0
- },
- {
- "title": "sets fetched on the object",
- "fullTitle": "FetchHelper sets fetched on the object",
- "duration": 0
- },
- {
- "title": "does nothing if the method is PUT AND handler.fetchOnPUT is false",
- "fullTitle": "FetchHelper does nothing if the method is PUT AND handler.fetchOnPUT is false",
- "duration": 0
- },
- {
- "title": "responds with a notFound status if the err is true",
- "fullTitle": "FetchHelper responds with a notFound status if the err is true",
- "duration": 1
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "FetchHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "does nothing if the handler has no authenticate method",
- "fullTitle": "AuthenticateHelper does nothing if the handler has no authenticate method",
- "duration": 0
- },
- {
- "title": "runs the object's authenticate method if it has one",
- "fullTitle": "AuthenticateHelper runs the object's authenticate method if it has one",
- "duration": 0
- },
- {
- "title": "sets authenticated on the object",
- "fullTitle": "AuthenticateHelper sets authenticated on the object",
- "duration": 0
- },
- {
- "title": "responds with an unauthenticated status if the err is true",
- "fullTitle": "AuthenticateHelper responds with an unauthenticated status if the err is true",
- "duration": 1
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "AuthenticateHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "sets onBody on the object",
- "fullTitle": "onBodyHelper sets onBody on the object",
- "duration": 1
- },
- {
- "title": "sets the error param when there's an error",
- "fullTitle": "onBodyHelper sets the error param when there's an error",
- "duration": 0
- },
- {
- "title": "sets a body param when successful",
- "fullTitle": "onBodyHelper sets a body param when successful",
- "duration": 0
- },
- {
- "title": "fakes a 200 response",
- "fullTitle": "ContextFaker fakes a 200 response",
- "duration": 1
- },
- {
- "title": "can fake a call to req.uri.parent()",
- "fullTitle": "ContextFaker can fake a call to req.uri.parent()",
- "duration": 1
- },
- {
- "title": "fakes a 200 response with an asynch call",
- "fullTitle": "ContextFaker fakes a 200 response with an asynch call",
- "duration": 21
- },
- {
- "title": "fakes a json POST",
- "fullTitle": "ContextFaker fakes a json POST",
- "duration": 1
- },
- {
- "title": "fakes header setting",
- "fullTitle": "ContextFaker fakes header setting",
- "duration": 0
- },
- {
- "title": "fakes headers setting",
- "fullTitle": "ContextFaker fakes headers setting",
- "duration": 0
- },
- {
- "title": "fakes a 200 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 200 request to a module that implements fetch()",
- "duration": 1
- },
- {
- "title": "fakes a 404 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 404 request to a module that implements fetch()",
- "duration": 0
- },
- {
- "title": "fakes a 500 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 500 request to a module that implements fetch()",
- "duration": 0
- },
- {
- "title": "should return a json string",
- "fullTitle": "HyperJson #toString should return a json string",
- "duration": 0
- },
- {
- "title": "should return a json object when given one",
- "fullTitle": "HyperJson #toObject should return a json object when given one",
- "duration": 1
- },
- {
- "title": "should add a property to a json object that doesn't have it",
- "fullTitle": "HyperJson #property should add a property to a json object that doesn't have it",
- "duration": 0
- },
- {
- "title": "should add a link to a json object that has no links",
- "fullTitle": "HyperJson #link should add a link to a json object that has no links",
- "duration": 0
- },
- {
- "title": "should add a link to a json object that has a link",
- "fullTitle": "HyperJson #link should add a link to a json object that has a link",
- "duration": 0
- },
- {
- "title": "should error if its options array has anything other than method, schema, type",
- "fullTitle": "HyperJson #link should error if its options array has anything other than method, schema, type",
- "duration": 0
- },
- {
- "title": "should add a link with type, method and schema options",
- "fullTitle": "HyperJson #link should add a link with type, method and schema options",
- "duration": 0
- },
- {
- "title": "has default error handlers for 404s",
- "fullTitle": "Percolator has default error handlers for 404s",
- "duration": 48
- },
- {
- "title": "has default error handlers for 405s",
- "fullTitle": "Percolator has default error handlers for 405s",
- "duration": 8
- },
- {
- "title": "has default error handlers for 501s",
- "fullTitle": "Percolator has default error handlers for 501s",
- "duration": 4
- },
- {
- "title": "has a default error handler for 414s",
- "fullTitle": "Percolator has a default error handler for 414s",
- "duration": 10
- },
- {
- "title": "exposes a before hook for executing logic before requests",
- "fullTitle": "Percolator exposes a before hook for executing logic before requests",
- "duration": 3
- },
- {
- "title": "exposes an after hook for executing logic after requests",
- "fullTitle": "Percolator exposes an after hook for executing logic after requests",
- "duration": 2
- },
- {
- "title": "can respond to simple requests",
- "fullTitle": "Percolator can respond to simple requests",
- "duration": 3
- },
- {
- "title": "can respond to static requests",
- "fullTitle": "Percolator can respond to static requests",
- "duration": 19
- },
- {
- "title": "throws an error when staticDir is set, but the dir doesn't exist.",
- "fullTitle": "Percolator throws an error when staticDir is set, but the dir doesn't exist.",
- "duration": 1
- },
- {
- "title": "passes options on to the req's 'app' namespace",
- "fullTitle": "Percolator passes options on to the req's 'app' namespace",
- "duration": 2
- },
- {
- "title": "adds a router reference to every req",
- "fullTitle": "Percolator adds a router reference to every req",
- "duration": 5
- },
- {
- "title": "HEAD for a GET-only resource returns the same headers, blank resource",
- "fullTitle": "Percolator HEAD for a GET-only resource returns the same headers, blank resource",
- "duration": 3
- },
- {
- "title": "OPTIONS for a GET-only resource returns, GET, HEAD, OPTIONS",
- "fullTitle": "Percolator OPTIONS for a GET-only resource returns, GET, HEAD, OPTIONS",
- "duration": 2
- },
- {
- "title": "can be created",
- "fullTitle": "Percolator #ctor can be created",
- "duration": 1
- },
- {
- "title": "can override the default port",
- "fullTitle": "Percolator #ctor can override the default port",
- "duration": 3
- },
- {
- "title": "parsed body gets added to the req",
- "fullTitle": "Percolator when managing a text/plain body parsed body gets added to the req",
- "duration": 2
- },
- {
- "title": "parsed body gets added to the req",
- "fullTitle": "Percolator when managing a json body parsed body gets added to the req",
- "duration": 3
- },
- {
- "title": "responds 415 when Content-Type is unsupported",
- "fullTitle": "Percolator when managing a json body responds 415 when Content-Type is unsupported",
- "duration": 3
- },
- {
- "title": "responds 415 when Content-Type is missing on PUT",
- "fullTitle": "Percolator when managing a json body responds 415 when Content-Type is missing on PUT",
- "duration": 2
- },
- {
- "title": "responds 400 when Content-Type is json, but body doesn't contain JSON",
- "fullTitle": "Percolator when managing a json body responds 400 when Content-Type is json, but body doesn't contain JSON",
- "duration": 4
- },
- {
- "title": "can be constructed",
- "fullTitle": "StatusManager can be constructed",
- "duration": 0
- },
- {
- "title": "sets the status to 500 when the detail is a simple object",
- "fullTitle": "JsonResponder #internalServerError sets the status to 500 when the detail is a simple object",
- "duration": 0
- },
- {
- "title": "sets the status to 500 when the detail is a 'circular' object",
- "fullTitle": "JsonResponder #internalServerError sets the status to 500 when the detail is a 'circular' object",
- "duration": 0
- },
- {
- "title": "sets the status to 400",
- "fullTitle": "JsonResponder #badRequest sets the status to 400",
- "duration": 0
- },
- {
- "title": "sets the status to 202",
- "fullTitle": "JsonResponder #accepted sets the status to 202",
- "duration": 0
- },
- {
- "title": "sets the status to 204",
- "fullTitle": "JsonResponder #noContent sets the status to 204",
- "duration": 0
- },
- {
- "title": "sets the status to 205",
- "fullTitle": "JsonResponder #resetContent sets the status to 205",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 301",
- "fullTitle": "JsonResponder #movedPermanently sets the Location header and sets the status to 301",
- "duration": 0
- },
- {
- "title": "sets the Allow header and sets the status to 200",
- "fullTitle": "JsonResponder #OPTIONS sets the Allow header and sets the status to 200",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 301",
- "fullTitle": "JsonResponder #redirect sets the Location header and sets the status to 301",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 201",
- "fullTitle": "JsonResponder #created sets the Location header and sets the status to 201",
- "duration": 0
- },
- {
- "title": "should return a json object when given one",
- "fullTitle": "HyperJsonCollection #toObject should return a json object when given one",
- "duration": 0
- },
- {
- "title": "should return a json collection when given an array",
- "fullTitle": "HyperJsonCollection #toObject should return a json collection when given an array",
- "duration": 0
- },
- {
- "title": "should return a json collection indexed by a particular property when given an array and property name",
- "fullTitle": "HyperJsonCollection #toObject should return a json collection indexed by a particular property when given an array and property name",
- "duration": 1
- },
- {
- "title": "should allow a cb to be specified for an array collection",
- "fullTitle": "HyperJsonCollection #linkEach should allow a cb to be specified for an array collection",
- "duration": 1
- },
- {
- "title": "should allow a cb to be specified for an array collection",
- "fullTitle": "HyperJsonCollection #linkEach should allow a cb to be specified for an array collection",
- "duration": 0
- },
- {
- "title": "should do nothing if there are no _items",
- "fullTitle": "HyperJsonCollection #each should do nothing if there are no _items",
- "duration": 0
- },
- {
- "title": "should decorate each item in _items if its an array",
- "fullTitle": "HyperJsonCollection #each should decorate each item in _items if its an array",
- "duration": 0
- },
- {
- "title": "should decorate each item in _items if its an object",
- "fullTitle": "HyperJsonCollection #each should decorate each item in _items if its an object",
- "duration": 0
- },
- {
- "title": "sets fetch on wildcard if fetch is defined",
- "fullTitle": "CRUDCollection sets fetch on wildcard if fetch is defined",
- "duration": 1
- },
- {
- "title": "throws an exception if there's no list() or collectionGET() passed in the options param",
- "fullTitle": "CRUDCollection throws an exception if there's no list() or collectionGET() passed in the options param",
- "duration": 0
- },
- {
- "title": "collection GET outputs a create link",
- "fullTitle": "CRUDCollection when schema is set collection GET outputs a create link",
- "duration": 1
- },
- {
- "title": "collection GET outputs a create link with no query string even if self has one",
- "fullTitle": "CRUDCollection when schema is set collection GET outputs a create link with no query string even if self has one",
- "duration": 0
- },
- {
- "title": "creates self links in all items",
- "fullTitle": "CRUDCollection collection.GET creates self links in all items",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no destroy()",
- "fullTitle": "CRUDCollection wildcard.DELETE doesn't exist if options has no destroy()",
- "duration": 0
- },
- {
- "title": "calls options.destroy()",
- "fullTitle": "CRUDCollection wildcard.DELETE calls options.destroy()",
- "duration": 1
- },
- {
- "title": "calls options.destroy() and its callback if specified",
- "fullTitle": "CRUDCollection wildcard.DELETE calls options.destroy() and its callback if specified",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no update() or upsert()",
- "fullTitle": "CRUDCollection wildcard.PUT doesn't exist if options has no update() or upsert()",
- "duration": 0
- },
- {
- "title": "calls options.upsert() if it exists",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.upsert() if it exists",
- "duration": 0
- },
- {
- "title": "calls options.upsert() with its callback if it exists",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.upsert() with its callback if it exists",
- "duration": 1
- },
- {
- "title": "calls options.update()",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.update()",
- "duration": 0
- },
- {
- "title": "calls options.update() and its callback if specified",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.update() and its callback if specified",
- "duration": 0
- },
- {
- "title": "is defined when collectionGET is defined",
- "fullTitle": "CRUDCollection handler.GET is defined when collectionGET is defined",
- "duration": 0
- },
- {
- "title": "doesn't exist if there's no fetch() or memberGET",
- "fullTitle": "CRUDCollection wildcard.GET doesn't exist if there's no fetch() or memberGET",
- "duration": 0
- },
- {
- "title": "does not output an update link if there's no update()",
- "fullTitle": "CRUDCollection wildcard.GET does not output an update link if there's no update()",
- "duration": 1
- },
- {
- "title": "outputs a representation of a resource when fetch is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs a representation of a resource when fetch is defined",
- "duration": 0
- },
- {
- "title": "outputs without an update link if update() is not defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs without an update link if update() is not defined",
- "duration": 0
- },
- {
- "title": "outputs with an update link if update() is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs with an update link if update() is defined",
- "duration": 0
- },
- {
- "title": "outputs with a delete link if destroy() is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs with a delete link if destroy() is defined",
- "duration": 1
- },
- {
- "title": "is defined when memberGET is defined",
- "fullTitle": "CRUDCollection wildcard.GET is defined when memberGET is defined",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no create()",
- "fullTitle": "CRUDCollection handler.POST doesn't exist if options has no create()",
- "duration": 0
- },
- {
- "title": "calls options.create()",
- "fullTitle": "CRUDCollection handler.POST calls options.create()",
- "duration": 0
- },
- {
- "title": "calls options.create() and its callback if specified",
- "fullTitle": "CRUDCollection handler.POST calls options.create() and its callback if specified",
- "duration": 0
- },
- {
- "title": "sets onJson on the object",
- "fullTitle": "onJsonHelper sets onJson on the object",
- "duration": 0
- },
- {
- "title": "throws an error when called with 2+ params",
- "fullTitle": "onJsonHelper throws an error when called with 2+ params",
- "duration": 0
- },
- {
- "title": "sets the error param when there's an error",
- "fullTitle": "onJsonHelper sets the error param when there's an error",
- "duration": 0
- },
- {
- "title": "sets an obj param when successful",
- "fullTitle": "onJsonHelper sets an obj param when successful",
- "duration": 0
- },
- {
- "title": "responds with an error if json doesn't parse",
- "fullTitle": "onJsonHelper responds with an error if json doesn't parse",
- "duration": 0
- },
- {
- "title": "responds with an error if input incorrectly has additional properties",
- "fullTitle": "onJsonHelper responds with an error if input incorrectly has additional properties",
- "duration": 19
- },
- {
- "title": "throws errors when input doesn't match schema",
- "fullTitle": "onJsonHelper throws errors when input doesn't match schema",
- "duration": 16
- }
- ],
- "failures": [],
- "passes": [
- {
- "title": "does nothing if the handler has no basicAuthenticate method",
- "fullTitle": "BasicAuthenticateHelper does nothing if the handler has no basicAuthenticate method",
- "duration": 1
- },
- {
- "title": "runs the object's basicAuthenticate method if it has one",
- "fullTitle": "BasicAuthenticateHelper runs the object's basicAuthenticate method if it has one",
- "duration": 1
- },
- {
- "title": "sets authenticated on the object",
- "fullTitle": "BasicAuthenticateHelper sets authenticated on the object",
- "duration": 1
- },
- {
- "title": "sets returns 401 when the scheme is not basic",
- "fullTitle": "BasicAuthenticateHelper sets returns 401 when the scheme is not basic",
- "duration": 0
- },
- {
- "title": "responds with an unauthenticated status if Authorization header isn't there",
- "fullTitle": "BasicAuthenticateHelper responds with an unauthenticated status if Authorization header isn't there",
- "duration": 1
- },
- {
- "title": "responds with an unauthenticated status if the err is true",
- "fullTitle": "BasicAuthenticateHelper responds with an unauthenticated status if the err is true",
- "duration": 0
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "BasicAuthenticateHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "does nothing if the handler has no fetch method",
- "fullTitle": "FetchHelper does nothing if the handler has no fetch method",
- "duration": 1
- },
- {
- "title": "runs the object's fetch method if it has one",
- "fullTitle": "FetchHelper runs the object's fetch method if it has one",
- "duration": 0
- },
- {
- "title": "sets fetched on the object",
- "fullTitle": "FetchHelper sets fetched on the object",
- "duration": 0
- },
- {
- "title": "does nothing if the method is PUT AND handler.fetchOnPUT is false",
- "fullTitle": "FetchHelper does nothing if the method is PUT AND handler.fetchOnPUT is false",
- "duration": 0
- },
- {
- "title": "responds with a notFound status if the err is true",
- "fullTitle": "FetchHelper responds with a notFound status if the err is true",
- "duration": 1
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "FetchHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "does nothing if the handler has no authenticate method",
- "fullTitle": "AuthenticateHelper does nothing if the handler has no authenticate method",
- "duration": 0
- },
- {
- "title": "runs the object's authenticate method if it has one",
- "fullTitle": "AuthenticateHelper runs the object's authenticate method if it has one",
- "duration": 0
- },
- {
- "title": "sets authenticated on the object",
- "fullTitle": "AuthenticateHelper sets authenticated on the object",
- "duration": 0
- },
- {
- "title": "responds with an unauthenticated status if the err is true",
- "fullTitle": "AuthenticateHelper responds with an unauthenticated status if the err is true",
- "duration": 1
- },
- {
- "title": "responds with an internalServerError if the err is non-true/non-falsey",
- "fullTitle": "AuthenticateHelper responds with an internalServerError if the err is non-true/non-falsey",
- "duration": 0
- },
- {
- "title": "sets onBody on the object",
- "fullTitle": "onBodyHelper sets onBody on the object",
- "duration": 1
- },
- {
- "title": "sets the error param when there's an error",
- "fullTitle": "onBodyHelper sets the error param when there's an error",
- "duration": 0
- },
- {
- "title": "sets a body param when successful",
- "fullTitle": "onBodyHelper sets a body param when successful",
- "duration": 0
- },
- {
- "title": "fakes a 200 response",
- "fullTitle": "ContextFaker fakes a 200 response",
- "duration": 1
- },
- {
- "title": "can fake a call to req.uri.parent()",
- "fullTitle": "ContextFaker can fake a call to req.uri.parent()",
- "duration": 1
- },
- {
- "title": "fakes a 200 response with an asynch call",
- "fullTitle": "ContextFaker fakes a 200 response with an asynch call",
- "duration": 21
- },
- {
- "title": "fakes a json POST",
- "fullTitle": "ContextFaker fakes a json POST",
- "duration": 1
- },
- {
- "title": "fakes header setting",
- "fullTitle": "ContextFaker fakes header setting",
- "duration": 0
- },
- {
- "title": "fakes headers setting",
- "fullTitle": "ContextFaker fakes headers setting",
- "duration": 0
- },
- {
- "title": "fakes a 200 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 200 request to a module that implements fetch()",
- "duration": 1
- },
- {
- "title": "fakes a 404 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 404 request to a module that implements fetch()",
- "duration": 0
- },
- {
- "title": "fakes a 500 request to a module that implements fetch()",
- "fullTitle": "ContextFaker fakes a 500 request to a module that implements fetch()",
- "duration": 0
- },
- {
- "title": "should return a json string",
- "fullTitle": "HyperJson #toString should return a json string",
- "duration": 0
- },
- {
- "title": "should return a json object when given one",
- "fullTitle": "HyperJson #toObject should return a json object when given one",
- "duration": 1
- },
- {
- "title": "should add a property to a json object that doesn't have it",
- "fullTitle": "HyperJson #property should add a property to a json object that doesn't have it",
- "duration": 0
- },
- {
- "title": "should add a link to a json object that has no links",
- "fullTitle": "HyperJson #link should add a link to a json object that has no links",
- "duration": 0
- },
- {
- "title": "should add a link to a json object that has a link",
- "fullTitle": "HyperJson #link should add a link to a json object that has a link",
- "duration": 0
- },
- {
- "title": "should error if its options array has anything other than method, schema, type",
- "fullTitle": "HyperJson #link should error if its options array has anything other than method, schema, type",
- "duration": 0
- },
- {
- "title": "should add a link with type, method and schema options",
- "fullTitle": "HyperJson #link should add a link with type, method and schema options",
- "duration": 0
- },
- {
- "title": "has default error handlers for 404s",
- "fullTitle": "Percolator has default error handlers for 404s",
- "duration": 48
- },
- {
- "title": "has default error handlers for 405s",
- "fullTitle": "Percolator has default error handlers for 405s",
- "duration": 8
- },
- {
- "title": "has default error handlers for 501s",
- "fullTitle": "Percolator has default error handlers for 501s",
- "duration": 4
- },
- {
- "title": "has a default error handler for 414s",
- "fullTitle": "Percolator has a default error handler for 414s",
- "duration": 10
- },
- {
- "title": "exposes a before hook for executing logic before requests",
- "fullTitle": "Percolator exposes a before hook for executing logic before requests",
- "duration": 3
- },
- {
- "title": "exposes an after hook for executing logic after requests",
- "fullTitle": "Percolator exposes an after hook for executing logic after requests",
- "duration": 2
- },
- {
- "title": "can respond to simple requests",
- "fullTitle": "Percolator can respond to simple requests",
- "duration": 3
- },
- {
- "title": "can respond to static requests",
- "fullTitle": "Percolator can respond to static requests",
- "duration": 19
- },
- {
- "title": "throws an error when staticDir is set, but the dir doesn't exist.",
- "fullTitle": "Percolator throws an error when staticDir is set, but the dir doesn't exist.",
- "duration": 1
- },
- {
- "title": "passes options on to the req's 'app' namespace",
- "fullTitle": "Percolator passes options on to the req's 'app' namespace",
- "duration": 2
- },
- {
- "title": "adds a router reference to every req",
- "fullTitle": "Percolator adds a router reference to every req",
- "duration": 5
- },
- {
- "title": "HEAD for a GET-only resource returns the same headers, blank resource",
- "fullTitle": "Percolator HEAD for a GET-only resource returns the same headers, blank resource",
- "duration": 3
- },
- {
- "title": "OPTIONS for a GET-only resource returns, GET, HEAD, OPTIONS",
- "fullTitle": "Percolator OPTIONS for a GET-only resource returns, GET, HEAD, OPTIONS",
- "duration": 2
- },
- {
- "title": "can be created",
- "fullTitle": "Percolator #ctor can be created",
- "duration": 1
- },
- {
- "title": "can override the default port",
- "fullTitle": "Percolator #ctor can override the default port",
- "duration": 3
- },
- {
- "title": "parsed body gets added to the req",
- "fullTitle": "Percolator when managing a text/plain body parsed body gets added to the req",
- "duration": 2
- },
- {
- "title": "parsed body gets added to the req",
- "fullTitle": "Percolator when managing a json body parsed body gets added to the req",
- "duration": 3
- },
- {
- "title": "responds 415 when Content-Type is unsupported",
- "fullTitle": "Percolator when managing a json body responds 415 when Content-Type is unsupported",
- "duration": 3
- },
- {
- "title": "responds 415 when Content-Type is missing on PUT",
- "fullTitle": "Percolator when managing a json body responds 415 when Content-Type is missing on PUT",
- "duration": 2
- },
- {
- "title": "responds 400 when Content-Type is json, but body doesn't contain JSON",
- "fullTitle": "Percolator when managing a json body responds 400 when Content-Type is json, but body doesn't contain JSON",
- "duration": 4
- },
- {
- "title": "can be constructed",
- "fullTitle": "StatusManager can be constructed",
- "duration": 0
- },
- {
- "title": "sets the status to 500 when the detail is a simple object",
- "fullTitle": "JsonResponder #internalServerError sets the status to 500 when the detail is a simple object",
- "duration": 0
- },
- {
- "title": "sets the status to 500 when the detail is a 'circular' object",
- "fullTitle": "JsonResponder #internalServerError sets the status to 500 when the detail is a 'circular' object",
- "duration": 0
- },
- {
- "title": "sets the status to 400",
- "fullTitle": "JsonResponder #badRequest sets the status to 400",
- "duration": 0
- },
- {
- "title": "sets the status to 202",
- "fullTitle": "JsonResponder #accepted sets the status to 202",
- "duration": 0
- },
- {
- "title": "sets the status to 204",
- "fullTitle": "JsonResponder #noContent sets the status to 204",
- "duration": 0
- },
- {
- "title": "sets the status to 205",
- "fullTitle": "JsonResponder #resetContent sets the status to 205",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 301",
- "fullTitle": "JsonResponder #movedPermanently sets the Location header and sets the status to 301",
- "duration": 0
- },
- {
- "title": "sets the Allow header and sets the status to 200",
- "fullTitle": "JsonResponder #OPTIONS sets the Allow header and sets the status to 200",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 301",
- "fullTitle": "JsonResponder #redirect sets the Location header and sets the status to 301",
- "duration": 0
- },
- {
- "title": "sets the Location header and sets the status to 201",
- "fullTitle": "JsonResponder #created sets the Location header and sets the status to 201",
- "duration": 0
- },
- {
- "title": "should return a json object when given one",
- "fullTitle": "HyperJsonCollection #toObject should return a json object when given one",
- "duration": 0
- },
- {
- "title": "should return a json collection when given an array",
- "fullTitle": "HyperJsonCollection #toObject should return a json collection when given an array",
- "duration": 0
- },
- {
- "title": "should return a json collection indexed by a particular property when given an array and property name",
- "fullTitle": "HyperJsonCollection #toObject should return a json collection indexed by a particular property when given an array and property name",
- "duration": 1
- },
- {
- "title": "should allow a cb to be specified for an array collection",
- "fullTitle": "HyperJsonCollection #linkEach should allow a cb to be specified for an array collection",
- "duration": 1
- },
- {
- "title": "should allow a cb to be specified for an array collection",
- "fullTitle": "HyperJsonCollection #linkEach should allow a cb to be specified for an array collection",
- "duration": 0
- },
- {
- "title": "should do nothing if there are no _items",
- "fullTitle": "HyperJsonCollection #each should do nothing if there are no _items",
- "duration": 0
- },
- {
- "title": "should decorate each item in _items if its an array",
- "fullTitle": "HyperJsonCollection #each should decorate each item in _items if its an array",
- "duration": 0
- },
- {
- "title": "should decorate each item in _items if its an object",
- "fullTitle": "HyperJsonCollection #each should decorate each item in _items if its an object",
- "duration": 0
- },
- {
- "title": "sets fetch on wildcard if fetch is defined",
- "fullTitle": "CRUDCollection sets fetch on wildcard if fetch is defined",
- "duration": 1
- },
- {
- "title": "throws an exception if there's no list() or collectionGET() passed in the options param",
- "fullTitle": "CRUDCollection throws an exception if there's no list() or collectionGET() passed in the options param",
- "duration": 0
- },
- {
- "title": "collection GET outputs a create link",
- "fullTitle": "CRUDCollection when schema is set collection GET outputs a create link",
- "duration": 1
- },
- {
- "title": "collection GET outputs a create link with no query string even if self has one",
- "fullTitle": "CRUDCollection when schema is set collection GET outputs a create link with no query string even if self has one",
- "duration": 0
- },
- {
- "title": "creates self links in all items",
- "fullTitle": "CRUDCollection collection.GET creates self links in all items",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no destroy()",
- "fullTitle": "CRUDCollection wildcard.DELETE doesn't exist if options has no destroy()",
- "duration": 0
- },
- {
- "title": "calls options.destroy()",
- "fullTitle": "CRUDCollection wildcard.DELETE calls options.destroy()",
- "duration": 1
- },
- {
- "title": "calls options.destroy() and its callback if specified",
- "fullTitle": "CRUDCollection wildcard.DELETE calls options.destroy() and its callback if specified",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no update() or upsert()",
- "fullTitle": "CRUDCollection wildcard.PUT doesn't exist if options has no update() or upsert()",
- "duration": 0
- },
- {
- "title": "calls options.upsert() if it exists",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.upsert() if it exists",
- "duration": 0
- },
- {
- "title": "calls options.upsert() with its callback if it exists",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.upsert() with its callback if it exists",
- "duration": 1
- },
- {
- "title": "calls options.update()",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.update()",
- "duration": 0
- },
- {
- "title": "calls options.update() and its callback if specified",
- "fullTitle": "CRUDCollection wildcard.PUT calls options.update() and its callback if specified",
- "duration": 0
- },
- {
- "title": "is defined when collectionGET is defined",
- "fullTitle": "CRUDCollection handler.GET is defined when collectionGET is defined",
- "duration": 0
- },
- {
- "title": "doesn't exist if there's no fetch() or memberGET",
- "fullTitle": "CRUDCollection wildcard.GET doesn't exist if there's no fetch() or memberGET",
- "duration": 0
- },
- {
- "title": "does not output an update link if there's no update()",
- "fullTitle": "CRUDCollection wildcard.GET does not output an update link if there's no update()",
- "duration": 1
- },
- {
- "title": "outputs a representation of a resource when fetch is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs a representation of a resource when fetch is defined",
- "duration": 0
- },
- {
- "title": "outputs without an update link if update() is not defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs without an update link if update() is not defined",
- "duration": 0
- },
- {
- "title": "outputs with an update link if update() is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs with an update link if update() is defined",
- "duration": 0
- },
- {
- "title": "outputs with a delete link if destroy() is defined",
- "fullTitle": "CRUDCollection wildcard.GET outputs with a delete link if destroy() is defined",
- "duration": 1
- },
- {
- "title": "is defined when memberGET is defined",
- "fullTitle": "CRUDCollection wildcard.GET is defined when memberGET is defined",
- "duration": 0
- },
- {
- "title": "doesn't exist if options has no create()",
- "fullTitle": "CRUDCollection handler.POST doesn't exist if options has no create()",
- "duration": 0
- },
- {
- "title": "calls options.create()",
- "fullTitle": "CRUDCollection handler.POST calls options.create()",
- "duration": 0
- },
- {
- "title": "calls options.create() and its callback if specified",
- "fullTitle": "CRUDCollection handler.POST calls options.create() and its callback if specified",
- "duration": 0
- },
- {
- "title": "sets onJson on the object",
- "fullTitle": "onJsonHelper sets onJson on the object",
- "duration": 0
- },
- {
- "title": "throws an error when called with 2+ params",
- "fullTitle": "onJsonHelper throws an error when called with 2+ params",
- "duration": 0
- },
- {
- "title": "sets the error param when there's an error",
- "fullTitle": "onJsonHelper sets the error param when there's an error",
- "duration": 0
- },
- {
- "title": "sets an obj param when successful",
- "fullTitle": "onJsonHelper sets an obj param when successful",
- "duration": 0
- },
- {
- "title": "responds with an error if json doesn't parse",
- "fullTitle": "onJsonHelper responds with an error if json doesn't parse",
- "duration": 0
- },
- {
- "title": "responds with an error if input incorrectly has additional properties",
- "fullTitle": "onJsonHelper responds with an error if input incorrectly has additional properties",
- "duration": 19
- },
- {
- "title": "throws errors when input doesn't match schema",
- "fullTitle": "onJsonHelper throws errors when input doesn't match schema",
- "duration": 16
- }
- ]
-}make[1]: Leaving directory `/home/cainus/percolator'
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-coveralls.git
More information about the Pkg-javascript-commits
mailing list