Files
freeCodeCamp/coverage/lcov-report/server/boot/fieldGuide.js.html
2015-06-11 21:21:02 -04:00

427 lines
16 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for server/boot/fieldGuide.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 low">
<h1>Code coverage report for <span class="entity">server/boot/fieldGuide.js</span></h1>
<h2>
Statements: <span class="metric">24.14% <small>(14 / 58)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Branches: <span class="metric">0% <small>(0 / 24)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Functions: <span class="metric">9.09% <small>(1 / 11)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Lines: <span class="metric">25% <small>(14 / 56)</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">server/boot/</a> &#187; fieldGuide.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128</td><td class="line-coverage"><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-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-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-yes">1</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-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-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-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-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-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-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-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-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-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</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-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-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-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-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-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-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-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-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-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-no">&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-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-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 R = require('ramda'),
// Rx = require('rx'),
// debug = require('debug')('freecc:fieldguides'),
utils = require('../utils');
&nbsp;
module.exports = function(app) {
var router = app.loopback.Router();
var FieldGuide = app.models.FieldGuide;
&nbsp;
router.get('/field-guide/all-articles', showAllFieldGuides);
router.get('/field-guide/:fieldGuideName', returnIndividualFieldGuide);
router.get('/field-guide/', returnNextFieldGuide);
router.post('/completed-field-guide/', completedFieldGuide);
&nbsp;
app.use(router);
&nbsp;
<span class="fstat-no" title="function not covered" > function returnIndividualFieldGuide(req, res, next) {</span>
<span class="cstat-no" title="statement not covered" > var dashedNameFromQuery = req.params.fieldGuideName;</span>
<span class="cstat-no" title="statement not covered" > if (req.user) {</span>
<span class="cstat-no" title="statement not covered" > var completed = req.user.completedFieldGuides;</span>
&nbsp;
<span class="cstat-no" title="statement not covered" > var uncompletedFieldGuides = utils.allFieldGuideIds()</span>
.filter(<span class="fstat-no" title="function not covered" >function (elem) {</span>
<span class="cstat-no" title="statement not covered" > if (completed.indexOf(elem) === -1) {</span>
<span class="cstat-no" title="statement not covered" > return elem;</span>
}
});
<span class="cstat-no" title="statement not covered" > req.user.uncompletedFieldGuides = uncompletedFieldGuides;</span>
// TODO(berks): handle callback properly
<span class="cstat-no" title="statement not covered" > req.user.save(<span class="fstat-no" title="function not covered" >function(err) {</span></span>
<span class="cstat-no" title="statement not covered" > if (err) { <span class="cstat-no" title="statement not covered" >return next(err); </span>}</span>
});
}
&nbsp;
<span class="cstat-no" title="statement not covered" > FieldGuide.find({ where: {'dashedName': dashedNameFromQuery}},</span>
<span class="fstat-no" title="function not covered" > function(err, fieldGuideFromMongo) {</span>
<span class="cstat-no" title="statement not covered" > if (err) {</span>
<span class="cstat-no" title="statement not covered" > return next(err);</span>
}
&nbsp;
<span class="cstat-no" title="statement not covered" > if (fieldGuideFromMongo.length &lt; 1) {</span>
<span class="cstat-no" title="statement not covered" > req.flash('errors', {</span>
msg: '404: We couldn\'t find a field guide entry with that name. ' +
'Please double check the name.'
});
&nbsp;
<span class="cstat-no" title="statement not covered" > return res.redirect('/');</span>
}
&nbsp;
<span class="cstat-no" title="statement not covered" > var fieldGuide = R.head(fieldGuideFromMongo);</span>
<span class="cstat-no" title="statement not covered" > fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, '');</span>
&nbsp;
// if (fieldGuide.dashedName !== dashedNameFromQuery) {
// return res.redirect('../field-guide/' + fieldGuide.dashedName);
// }
<span class="cstat-no" title="statement not covered" > res.render('field-guide/show', {</span>
title: fieldGuide.name,
fieldGuideId: fieldGuide.id,
description: fieldGuide.description.join('')
});
}
);
}
&nbsp;
<span class="fstat-no" title="function not covered" > function showAllFieldGuides(req, res) {</span>
<span class="cstat-no" title="statement not covered" > var allFieldGuideNamesAndIds = utils.allFieldGuideNamesAndIds();</span>
&nbsp;
<span class="cstat-no" title="statement not covered" > var completedFieldGuides = [];</span>
<span class="cstat-no" title="statement not covered" > if (req.user &amp;&amp; req.user.completedFieldGuides) {</span>
<span class="cstat-no" title="statement not covered" > completedFieldGuides = req.user.completedFieldGuides;</span>
}
<span class="cstat-no" title="statement not covered" > res.render('field-guide/all-articles', {</span>
allFieldGuideNamesAndIds: allFieldGuideNamesAndIds,
completedFieldGuides: completedFieldGuides
});
}
&nbsp;
<span class="fstat-no" title="function not covered" > function showCompletedFieldGuideFunction(req, res) {</span>
<span class="cstat-no" title="statement not covered" > req.flash('success', {</span>
msg: [
'You\'ve read all our current Field Guide entries. ' +
'If you have ideas for other Field Guide articles, ' +
'please let us know on ',
'&lt;a href=\'https://github.com/freecodecamp/freecodecamp/' +
'issues/new?&amp;body=Please describe your idea for a Field Guide' +
' article and include links if possible.\'&gt;GitHub&lt;/a&gt;.'
].join('')
});
<span class="cstat-no" title="statement not covered" > return res.redirect('../field-guide/how-do-i-use-this-guide');</span>
}
&nbsp;
<span class="fstat-no" title="function not covered" > function returnNextFieldGuide(req, res, next) {</span>
<span class="cstat-no" title="statement not covered" > if (!req.user) {</span>
<span class="cstat-no" title="statement not covered" > return res.redirect('/field-guide/how-do-i-use-this-guide');</span>
}
&nbsp;
<span class="cstat-no" title="statement not covered" > if (!req.user.uncompletedFieldGuides.length) {</span>
<span class="cstat-no" title="statement not covered" > return showCompletedFieldGuideFunction(req, res, next);</span>
}
&nbsp;
<span class="cstat-no" title="statement not covered" > FieldGuide.findById(req.user.uncompletedFieldGuides[0],</span>
<span class="fstat-no" title="function not covered" > function(err, fieldGuide) {</span>
&nbsp;
<span class="cstat-no" title="statement not covered" > if (err) { <span class="cstat-no" title="statement not covered" >return next(err); </span>}</span>
<span class="cstat-no" title="statement not covered" > return res.redirect('../field-guide/' + fieldGuide.dashedName);</span>
});
}
};
&nbsp;
<span class="fstat-no" title="function not covered" >function completedFieldGuide(req, res, next) {</span>
<span class="cstat-no" title="statement not covered" > var fieldGuideId = req.body.fieldGuideInfo.fieldGuideId;</span>
&nbsp;
<span class="cstat-no" title="statement not covered" > req.user.completedFieldGuides.push(fieldGuideId);</span>
&nbsp;
<span class="cstat-no" title="statement not covered" > var index = req.user.uncompletedFieldGuides.indexOf(fieldGuideId);</span>
<span class="cstat-no" title="statement not covered" > if (index &gt; -1) {</span>
<span class="cstat-no" title="statement not covered" > req.user.progressTimestamps.push(Date.now());</span>
<span class="cstat-no" title="statement not covered" > req.user.uncompletedFieldGuides.splice(index, 1);</span>
}
&nbsp;
<span class="cstat-no" title="statement not covered" > req.user.save(<span class="fstat-no" title="function not covered" >function (err) {</span></span>
<span class="cstat-no" title="statement not covered" > if (err) {</span>
<span class="cstat-no" title="statement not covered" > return next(err);</span>
}
<span class="cstat-no" title="statement not covered" > res.send(true);</span>
});
}
&nbsp;</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 Thu Jun 11 2015 21:16:17 GMT-0400 (EDT)</div>
</div>
<script src="../../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../../sorter.js"></script>
</body>
</html>