UNPKG

json-mock-kuitos

Version:

Mock a REST API just using JSON. An advanced fork of typicode/json-server

262 lines (260 loc) 7.82 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for src/utils.js</title> <meta charset="utf-8"> <link rel="stylesheet" href="../prettify.css"> <link rel="stylesheet" href="../base.css"> <style type='text/css'> div.coverage-summary .sorter { background-image: url(../sort-arrow-sprite.png); } </style> </head> <body> <div class="header medium"> <h1>Code coverage report for <span class="entity">src/utils.js</span></h1> <h2> Statements: <span class="metric">79.41% <small>(27 / 34)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Branches: <span class="metric">77.27% <small>(17 / 22)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Functions: <span class="metric">71.43% <small>(5 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Lines: <span class="metric">79.41% <small>(27 / 34)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp; </h2> <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">src/</a> &#187; utils.js</div> </div> <div class="body"> <pre><table class="coverage"> <tr><td class="line-count">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73</td><td class="line-coverage"><span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">9</span> <span class="cline-any cline-yes">7</span> <span class="cline-any cline-yes">4</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-yes">4</span> <span class="cline-any cline-yes">8</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var _ = require('underscore') var uuid = require('node-uuid') var _inflections = require('underscore.inflections') _.mixin(_inflections) &nbsp; // Turns string to native. // Example: // 'true' -&gt; true // '1' -&gt; 1 function toNative(value) { if (typeof value === 'string') { if (value === '' || value.trim() !== value) { return value } else if (value === 'true' || value === 'false') { return value === 'true' } else if (!isNaN(+value)) { return +value } } return value } &nbsp; // Return incremented id or uuid <span class="fstat-no" title="function not covered" >function createId(coll) {</span> <span class="cstat-no" title="statement not covered" > if (_.isEmpty(coll)) {</span> <span class="cstat-no" title="statement not covered" > return 1</span> } else { <span class="cstat-no" title="statement not covered" > var id = _.max(coll, <span class="fstat-no" title="function not covered" >function(doc) {</span></span> <span class="cstat-no" title="statement not covered" > return doc.id</span> }).id &nbsp; <span class="cstat-no" title="statement not covered" > if (_.isFinite(id)) {</span> // Increment integer id <span class="cstat-no" title="statement not covered" > return ++id</span> } else { // Generate string id <span class="cstat-no" title="statement not covered" > return uuid()</span> } } } &nbsp; &nbsp; // Returns document ids that have unsatisfied relations // Example: a comment that references a post that doesn't exist function getRemovable(db) { var removable = [] &nbsp; _(db).each(function(coll, collName) { _(coll).each(function(doc) { _(doc).each(function(value, key) { if (/Id$/.test(key)) { var refName = _.pluralize(key.slice(0, -2)) // Test if table exists <span class="missing-if-branch" title="else path not taken" >E</span>if (db[refName]) { // Test if references is defined in table var ref = _.findWhere(db[refName], {id: value}) if (_.isUndefined(ref)) { removable.push({name: collName, id: doc.id}) } } } }) }) }) &nbsp; return removable } &nbsp; module.exports = { toNative: toNative, createId: createId, getRemovable: getRemovable }</pre></td></tr> </table></pre> </div> <div class="footer"> <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Nov 30 2015 23:25:47 GMT+0800 (CST)</div> </div> <script src="../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../sorter.js"></script> </body> </html>