Added section upsert and import section test.

This commit is contained in:
mike.rode
2019-02-24 01:39:22 -06:00
parent effc7e5a6d
commit d73afedec9
40 changed files with 275 additions and 375 deletions

View File

@@ -5,7 +5,8 @@
"database": "recommend_development",
"host": "127.0.0.1",
"dialect": "postgres",
"operatorsAliases": false
"operatorsAliases": false,
"logging": false
},
"test": {
"username": "postgres",
@@ -13,7 +14,8 @@
"database": "recommend_test",
"host": "127.0.0.1",
"dialect": "postgres",
"operatorsAliases": false
"operatorsAliases": false,
"logging": true
},
"production": {
"username": "postgres",

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">78.54% </span>
<span class="strong">84.16% </span>
<span class="quiet">Statements</span>
<span class='fraction'>161/205</span>
<span class='fraction'>170/202</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">68.97% </span>
@@ -30,21 +30,21 @@
<span class='fraction'>20/29</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">67.92% </span>
<span class="strong">77.36% </span>
<span class="quiet">Functions</span>
<span class='fraction'>36/53</span>
<span class='fraction'>41/53</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">78.43% </span>
<span class="strong">84.08% </span>
<span class="quiet">Lines</span>
<span class='fraction'>160/204</span>
<span class='fraction'>169/201</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line medium'></div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
@@ -89,15 +89,15 @@
<tr>
<td class="file high" data-value="recommend/server"><a href="recommend/server/index.html">recommend/server</a></td>
<td data-value="94.44" class="pic high"><div class="chart"><div class="cover-fill" style="width: 94%;"></div><div class="cover-empty" style="width:6%;"></div></div></td>
<td data-value="94.44" class="pct high">94.44%</td>
<td data-value="18" class="abs high">17/18</td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="18" class="abs high">18/18</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="83.33" class="pct high">83.33%</td>
<td data-value="6" class="abs high">5/6</td>
<td data-value="94.44" class="pct high">94.44%</td>
<td data-value="18" class="abs high">17/18</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="18" class="abs high">18/18</td>
</tr>
<tr>
@@ -115,15 +115,15 @@
<tr>
<td class="file high" data-value="recommend/server/models"><a href="recommend/server/models/index.html">recommend/server/models</a></td>
<td data-value="97.14" class="pic high"><div class="chart"><div class="cover-fill" style="width: 97%;"></div><div class="cover-empty" style="width:3%;"></div></div></td>
<td data-value="97.14" class="pct high">97.14%</td>
<td data-value="35" class="abs high">34/35</td>
<td data-value="97.22" class="pic high"><div class="chart"><div class="cover-fill" style="width: 97%;"></div><div class="cover-empty" style="width:3%;"></div></div></td>
<td data-value="97.22" class="pct high">97.22%</td>
<td data-value="36" class="abs high">35/36</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="9" class="abs medium">6/9</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="9" class="abs high">9/9</td>
<td data-value="97.14" class="pct high">97.14%</td>
<td data-value="35" class="abs high">34/35</td>
<td data-value="97.22" class="pct high">97.22%</td>
<td data-value="36" class="abs high">35/36</td>
</tr>
<tr>
@@ -141,15 +141,15 @@
<tr>
<td class="file medium" data-value="recommend/server/services/plex"><a href="recommend/server/services/plex/index.html">recommend/server/services/plex</a></td>
<td data-value="67.19" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 67%;"></div><div class="cover-empty" style="width:33%;"></div></div></td>
<td data-value="67.19" class="pct medium">67.19%</td>
<td data-value="128" class="abs medium">86/128</td>
<td data-value="75" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 75%;"></div><div class="cover-empty" style="width:25%;"></div></div></td>
<td data-value="75" class="pct medium">75%</td>
<td data-value="124" class="abs medium">93/124</td>
<td data-value="72.22" class="pct medium">72.22%</td>
<td data-value="18" class="abs medium">13/18</td>
<td data-value="57.89" class="pct medium">57.89%</td>
<td data-value="38" class="abs medium">22/38</td>
<td data-value="66.93" class="pct medium">66.93%</td>
<td data-value="127" class="abs medium">85/127</td>
<td data-value="68.42" class="pct medium">68.42%</td>
<td data-value="38" class="abs medium">26/38</td>
<td data-value="74.8" class="pct medium">74.8%</td>
<td data-value="123" class="abs medium">92/123</td>
</tr>
</tbody>
@@ -158,7 +158,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="prettify.js"></script>

View File

@@ -106,7 +106,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -94,7 +94,7 @@ export default {server: _.merge(defaultConfig, envConfig), plex: plexConfig};
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -73,7 +73,7 @@ export default plexConfig;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -70,7 +70,7 @@ export default testConfig;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -80,7 +80,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../prettify.js"></script>

View File

@@ -76,7 +76,7 @@ export default server.create(config);
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../prettify.js"></script>

View File

@@ -80,7 +80,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -109,7 +109,7 @@ export default router;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">94.44% </span>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>17/18</span>
<span class='fraction'>18/18</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -30,14 +30,14 @@
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">83.33% </span>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>5/6</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">94.44% </span>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>17/18</span>
<span class='fraction'>18/18</span>
</div>
</div>
<p class="quiet">
@@ -63,15 +63,15 @@
</thead>
<tbody><tr>
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
<td data-value="94.44" class="pic high"><div class="chart"><div class="cover-fill" style="width: 94%;"></div><div class="cover-empty" style="width:6%;"></div></div></td>
<td data-value="94.44" class="pct high">94.44%</td>
<td data-value="18" class="abs high">17/18</td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="18" class="abs high">18/18</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="83.33" class="pct high">83.33%</td>
<td data-value="6" class="abs high">5/6</td>
<td data-value="94.44" class="pct high">94.44%</td>
<td data-value="18" class="abs high">17/18</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="18" class="abs high">18/18</td>
</tr>
</tbody>
@@ -80,7 +80,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">94.44% </span>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>17/18</span>
<span class='fraction'>18/18</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -30,14 +30,14 @@
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">83.33% </span>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>5/6</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">94.44% </span>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>17/18</span>
<span class='fraction'>18/18</span>
</div>
</div>
<p class="quiet">
@@ -125,7 +125,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
@@ -166,8 +166,8 @@ export default () =&gt; {
});
};
&nbsp;
process.on('unhandledRejection', <span class="fstat-no" title="function not covered" >(r</span>eason, p) =&gt; {
<span class="cstat-no" title="statement not covered" > console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);</span>
process.on('unhandledRejection', (reason, p) =&gt; {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
&nbsp;
return {create, start};
@@ -178,7 +178,7 @@ export default () =&gt; {
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">97.14% </span>
<span class="strong">97.22% </span>
<span class="quiet">Statements</span>
<span class='fraction'>34/35</span>
<span class='fraction'>35/36</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">66.67% </span>
@@ -35,9 +35,9 @@
<span class='fraction'>9/9</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">97.14% </span>
<span class="strong">97.22% </span>
<span class="quiet">Lines</span>
<span class='fraction'>34/35</span>
<span class='fraction'>35/36</span>
</div>
</div>
<p class="quiet">
@@ -78,39 +78,39 @@
<td class="file high" data-value="plexlibrary.js"><a href="plexlibrary.js.html">plexlibrary.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="5" class="abs high">5/5</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="5" class="abs high">5/5</td>
</tr>
<tr>
<td class="file high" data-value="plexsection.js"><a href="plexsection.js.html">plexsection.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="5" class="abs high">5/5</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="5" class="abs high">5/5</td>
</tr>
<tr>
<td class="file high" data-value="user.js"><a href="user.js.html">user.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="5" class="abs high">5/5</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="5" class="abs high">5/5</td>
<td data-value="6" class="abs high">6/6</td>
</tr>
</tbody>
@@ -119,7 +119,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -178,7 +178,7 @@ module.exports = db;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -22,7 +22,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>4/4</span>
<span class='fraction'>5/5</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -37,7 +37,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>4/4</span>
<span class='fraction'>5/5</span>
</div>
</div>
<p class="quiet">
@@ -67,7 +67,8 @@
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -83,15 +84,17 @@
<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">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</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">module.exports = (sequelize, DataTypes) =&gt; {
const PlexLibrary = sequelize.define(
'plexlibrary',
'PlexLibrary',
{
title: {type: DataTypes.STRING, unique: true},
type: DataTypes.STRING,
views: DataTypes.INTEGER,
rating_key: DataTypes.INTEGER,
@@ -105,7 +108,7 @@
);
// eslint-disable-next-line no-unused-vars
PlexLibrary.associate = function(models) {
// associations can be defined here
PlexLibrary.belongsTo(models.User);
};
return PlexLibrary;
};
@@ -115,7 +118,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -22,7 +22,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>6/6</span>
<span class='fraction'>5/5</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -37,7 +37,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>6/6</span>
<span class='fraction'>5/5</span>
</div>
</div>
<p class="quiet">
@@ -61,8 +61,7 @@
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -74,23 +73,21 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</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">module.exports = (sequelize, DataTypes) =&gt; {
const PlexSection = sequelize.define(
'plexsection',
'PlexSection',
{
title: DataTypes.STRING,
title: {type: DataTypes.STRING, unique: true},
type: DataTypes.STRING,
key: DataTypes.INTEGER,
},
{},
);
PlexSection.associate = function(models) {
console.log(models);
PlexSection.belongsTo(models.user);
PlexSection.belongsTo(models.User);
};
return PlexSection;
};
@@ -100,7 +97,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -22,7 +22,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>5/5</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -37,7 +37,7 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>5/5</span>
<span class='fraction'>6/6</span>
</div>
</div>
<p class="quiet">
@@ -61,7 +61,8 @@
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -73,21 +74,23 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</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">module.exports = (sequelize, DataTypes) =&gt; {
const User = sequelize.define(
'user',
'User',
{
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: DataTypes.STRING,
email: {type: DataTypes.STRING, unique: true},
},
{},
);
User.associate = function(models) {
User.hasMany(models.plexsection);
User.hasMany(models.PlexSection);
User.hasMany(models.PlexLibrary);
};
return User;
};
@@ -97,7 +100,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -80,7 +80,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -79,7 +79,7 @@ export default router;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../prettify.js"></script>

View File

@@ -130,7 +130,7 @@ export default fetchToken;
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -103,21 +103,21 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-yes">10x</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>
@@ -125,13 +125,13 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-yes">9x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">7x</span>
<span class="cline-any cline-yes">9x</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>
@@ -208,7 +208,7 @@ export default {formatResponse, buildUrl, request};
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">24.14% </span>
<span class="strong">48% </span>
<span class="quiet">Statements</span>
<span class='fraction'>7/29</span>
<span class='fraction'>12/25</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -30,14 +30,14 @@
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">0% </span>
<span class="strong">25% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/12</span>
<span class='fraction'>3/12</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">24.14% </span>
<span class="strong">48% </span>
<span class="quiet">Lines</span>
<span class='fraction'>7/29</span>
<span class='fraction'>12/25</span>
</div>
</div>
<p class="quiet">
@@ -141,19 +141,26 @@
<a name='L93'></a><a href='#L93'>93</a>
<a name='L94'></a><a href='#L94'>94</a>
<a name='L95'></a><a href='#L95'>95</a>
<a name='L96'></a><a href='#L96'>96</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<a name='L96'></a><a href='#L96'>96</a>
<a name='L97'></a><a href='#L97'>97</a></td><td class="line-coverage quiet"><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">1x</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-yes">2x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">4x</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-neutral">&nbsp;</span>
@@ -166,7 +173,6 @@
<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-neutral">&nbsp;</span>
@@ -174,13 +180,11 @@
<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-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</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>
@@ -210,7 +214,6 @@
<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">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
@@ -235,30 +238,34 @@
<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></td><td class="text"><pre class="prettyprint lang-js">import plexApiClient from './plexApi';
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import plexApi from './plexApi';
import models from '../../models';
&nbsp;
const importSections = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
const plexApi = <span class="cstat-no" title="statement not covered" >plexApiClient();</span>
const sections = <span class="cstat-no" title="statement not covered" >await plexApi.getSections();</span>
<span class="cstat-no" title="statement not covered" > createSections(sections);</span>
<span class="cstat-no" title="statement not covered" > return sections;</span>
const importSections = async () =&gt; {
const sections = await plexApi.getSections();
createSections(sections);
return sections;
};
&nbsp;
const createSections = <span class="fstat-no" title="function not covered" >se</span>ctions =&gt; {
<span class="cstat-no" title="statement not covered" > sections.forEach(<span class="fstat-no" title="function not covered" >as</span>ync section =&gt; {</span>
<span class="cstat-no" title="statement not covered" > await models.PlexSection.create({</span>
userId: 1,
title: section.title,
type: section.type,
key: section.key,
});
const createSections = sections =&gt; {
sections.forEach(async section =&gt; {
await models.PlexSection.upsert(
{
UserId: 1,
title: section.title,
type: section.type,
key: section.key,
},
{
where: {
title: section.title,
},
},
);
});
};
&nbsp;
const importLibraries = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
const plexApi = <span class="cstat-no" title="statement not covered" >plexApiClient();</span>
const sections = <span class="cstat-no" title="statement not covered" >await plexApi.getSections();</span>
<span class="cstat-no" title="statement not covered" > sections.forEach(<span class="fstat-no" title="function not covered" >as</span>ync section =&gt; {</span>
<span class="cstat-no" title="statement not covered" > await importLibrary(section.key);</span>
@@ -266,7 +273,6 @@ const importLibraries = <span class="fstat-no" title="function not covered" >as<
};
&nbsp;
const importMostWatched = <span class="fstat-no" title="function not covered" >as</span>ync req =&gt; {
const plexApi = <span class="cstat-no" title="statement not covered" >plexApiClient();</span>
const mostWatched = <span class="cstat-no" title="statement not covered" >await plexApi.getMostWatched(req);</span>
<span class="cstat-no" title="statement not covered" > mostWatched.forEach(<span class="fstat-no" title="function not covered" >as</span>ync libraryData =&gt; {</span>
<span class="cstat-no" title="statement not covered" > await updateLibrary([libraryData]);</span>
@@ -274,7 +280,6 @@ const importMostWatched = <span class="fstat-no" title="function not covered" >a
};
&nbsp;
const importLibrary = <span class="fstat-no" title="function not covered" >as</span>ync sectionId =&gt; {
const plexApi = <span class="cstat-no" title="statement not covered" >plexApiClient();</span>
const libraryData = <span class="cstat-no" title="statement not covered" >await plexApi.getLibraryDataBySection({</span>
sectionId,
});
@@ -286,7 +291,6 @@ const updateLibrary = <span class="fstat-no" title="function not covered" >li</s
<span class="cstat-no" title="statement not covered" > libraryData.forEach(<span class="fstat-no" title="function not covered" >as</span>ync data =&gt; {</span>
<span class="cstat-no" title="statement not covered" > await models.PlexLibrary.update(</span>
{
userId: 1,
title: data.title,
type: data.type,
views: data.globalViewCount,
@@ -310,7 +314,6 @@ const createLibrary = <span class="fstat-no" title="function not covered" >li</s
<span class="cstat-no" title="statement not covered" > libraryData.forEach(<span class="fstat-no" title="function not covered" >as</span>ync data =&gt; {</span>
<span class="cstat-no" title="statement not covered" > await models.PlexLibrary.upsert(</span>
{
userId: 1,
title: data.title,
type: data.type,
views: data.views,
@@ -337,7 +340,7 @@ export default {importSections, importLibraries, importMostWatched};
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">67.19% </span>
<span class="strong">75% </span>
<span class="quiet">Statements</span>
<span class='fraction'>86/128</span>
<span class='fraction'>93/124</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">72.22% </span>
@@ -30,14 +30,14 @@
<span class='fraction'>13/18</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">57.89% </span>
<span class="strong">68.42% </span>
<span class="quiet">Functions</span>
<span class='fraction'>22/38</span>
<span class='fraction'>26/38</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">66.93% </span>
<span class="strong">74.8% </span>
<span class="quiet">Lines</span>
<span class='fraction'>85/127</span>
<span class='fraction'>92/123</span>
</div>
</div>
<p class="quiet">
@@ -89,28 +89,28 @@
<tr>
<td class="file low" data-value="importData.js"><a href="importData.js.html">importData.js</a></td>
<td data-value="24.14" class="pic low"><div class="chart"><div class="cover-fill" style="width: 24%;"></div><div class="cover-empty" style="width:76%;"></div></div></td>
<td data-value="24.14" class="pct low">24.14%</td>
<td data-value="29" class="abs low">7/29</td>
<td data-value="48" class="pic low"><div class="chart"><div class="cover-fill" style="width: 48%;"></div><div class="cover-empty" style="width:52%;"></div></div></td>
<td data-value="48" class="pct low">48%</td>
<td data-value="25" class="abs low">12/25</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="0" class="pct low">0%</td>
<td data-value="12" class="abs low">0/12</td>
<td data-value="24.14" class="pct low">24.14%</td>
<td data-value="29" class="abs low">7/29</td>
<td data-value="25" class="pct low">25%</td>
<td data-value="12" class="abs low">3/12</td>
<td data-value="48" class="pct low">48%</td>
<td data-value="25" class="abs low">12/25</td>
</tr>
<tr>
<td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
<td data-value="70" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 70%;"></div><div class="cover-empty" style="width:30%;"></div></div></td>
<td data-value="70" class="pct medium">70%</td>
<td data-value="30" class="abs medium">21/30</td>
<td data-value="76.67" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 76%;"></div><div class="cover-empty" style="width:24%;"></div></div></td>
<td data-value="76.67" class="pct medium">76.67%</td>
<td data-value="30" class="abs medium">23/30</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="9" class="abs medium">6/9</td>
<td data-value="70" class="pct medium">70%</td>
<td data-value="30" class="abs medium">21/30</td>
<td data-value="77.78" class="pct medium">77.78%</td>
<td data-value="9" class="abs medium">7/9</td>
<td data-value="76.67" class="pct medium">76.67%</td>
<td data-value="30" class="abs medium">23/30</td>
</tr>
<tr>
@@ -132,7 +132,7 @@
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -20,9 +20,9 @@
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">70% </span>
<span class="strong">76.67% </span>
<span class="quiet">Statements</span>
<span class='fraction'>21/30</span>
<span class='fraction'>23/30</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
@@ -30,14 +30,14 @@
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">66.67% </span>
<span class="strong">77.78% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/9</span>
<span class='fraction'>7/9</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">70% </span>
<span class="strong">76.67% </span>
<span class="quiet">Lines</span>
<span class='fraction'>21/30</span>
<span class='fraction'>23/30</span>
</div>
</div>
<p class="quiet">
@@ -149,8 +149,8 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
@@ -212,9 +212,9 @@ const getLibraryDataBySection = async (req, res) =&gt; {
}
};
&nbsp;
const importSections = <span class="fstat-no" title="function not covered" >as</span>ync (req, res) =&gt; {
const sections = <span class="cstat-no" title="statement not covered" >await importData.importSections();</span>
<span class="cstat-no" title="statement not covered" > res.json(sections);</span>
const importSections = async (req, res) =&gt; {
const sections = await importData.importSections();
res.json(sections);
};
&nbsp;
const importLibraries = <span class="fstat-no" title="function not covered" >as</span>ync (req, res) =&gt; {
@@ -244,7 +244,7 @@ export default {
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -150,7 +150,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">3x</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>
@@ -200,10 +200,10 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
@@ -322,7 +322,7 @@ export default {
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Feb 23 2019 23:42:13 GMT-0600 (Central Standard Time)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Feb 24 2019 01:38:48 GMT-0600 (Central Standard Time)
</div>
</div>
<script src="../../../../prettify.js"></script>

View File

@@ -15,6 +15,7 @@ module.exports = {
},
email: {
type: Sequelize.STRING,
unique: true,
},
createdAt: {
allowNull: false,

View File

@@ -9,6 +9,7 @@ module.exports = {
},
title: {
type: Sequelize.STRING,
unique: true,
},
type: {
type: Sequelize.STRING,
@@ -34,7 +35,7 @@ module.exports = {
genre: {
type: Sequelize.STRING,
},
userId: {
UserId: {
type: Sequelize.INTEGER,
references: {
model: 'Users',

View File

@@ -9,6 +9,7 @@ module.exports = {
},
title: {
type: Sequelize.STRING,
unique: true,
},
type: {
type: Sequelize.STRING,
@@ -24,7 +25,7 @@ module.exports = {
allowNull: false,
type: Sequelize.DATE,
},
userId: {
UserId: {
type: Sequelize.INTEGER,
references: {
model: 'Users',

View File

@@ -1,36 +0,0 @@
import Sequelize from 'sequelize';
import fs from 'fs';
import path from 'path';
const sequelize = new Sequelize(
process.env.DATABASE,
process.env.DATABASE_USER,
process.env.DATABASE_PASSWORD,
{
dialect: 'postgres',
host: 'localhost',
logging: false,
operatorsAliases: false,
},
);
const basename = path.basename(module.filename);
const db = {Sequelize, sequelize};
const onlyModels = file =>
file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js';
const importModel = file => {
const modelPath = path.join(__dirname, file);
const model = sequelize.import(modelPath);
db[model.name] = model;
};
const associate = modelName => {
if (typeof db[modelName].associate === 'function')
db[modelName].associate(db);
};
fs.readdirSync(__dirname)
.filter(onlyModels)
.forEach(importModel);
Object.keys(db).forEach(associate);
module.exports = db;

View File

@@ -1,20 +0,0 @@
const model = (sequelize, DataTypes) => {
const PlexLibrary = sequelize.define('plex_library', {
title: {
type: DataTypes.STRING,
unique: true,
},
type: DataTypes.STRING,
views: DataTypes.INTEGER,
rating_key: DataTypes.INTEGER,
metadata_path: DataTypes.STRING,
summary: DataTypes.TEXT,
rating: DataTypes.FLOAT,
year: DataTypes.INTEGER,
genre: DataTypes.STRING,
});
return PlexLibrary;
};
export default model;

View File

@@ -1,14 +0,0 @@
const model = (sequelize, DataTypes) => {
const PlexSection = sequelize.define('plex_section', {
title: DataTypes.STRING,
type: DataTypes.STRING,
key: DataTypes.INTEGER,
});
return PlexSection;
};
export default model;
// model:create --name PlexSection --attributes title:string,type:string,key:integer

View File

@@ -1,11 +0,0 @@
const model = (sequelize, DataTypes) => {
const User = sequelize.define('user', {
username: {
type: DataTypes.STRING,
},
});
return User;
};
export default model;

View File

@@ -2,7 +2,7 @@ module.exports = (sequelize, DataTypes) => {
const PlexSection = sequelize.define(
'PlexSection',
{
title: DataTypes.STRING,
title: {type: DataTypes.STRING, unique: true},
type: DataTypes.STRING,
key: DataTypes.INTEGER,
},

View File

@@ -2,7 +2,7 @@ module.exports = (sequelize, DataTypes) => {
const PlexLibrary = sequelize.define(
'PlexLibrary',
{
title: DataTypes.STRING,
title: {type: DataTypes.STRING, unique: true},
type: DataTypes.STRING,
views: DataTypes.INTEGER,
rating_key: DataTypes.INTEGER,

View File

@@ -4,7 +4,7 @@ module.exports = (sequelize, DataTypes) => {
{
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: DataTypes.STRING,
email: {type: DataTypes.STRING, unique: true},
},
{},
);

View File

@@ -9,12 +9,19 @@ const importSections = async () => {
const createSections = sections => {
sections.forEach(async section => {
await models.PlexSection.create({
userId: 1,
title: section.title,
type: section.type,
key: section.key,
});
await models.PlexSection.upsert(
{
UserId: 1,
title: section.title,
type: section.type,
key: section.key,
},
{
where: {
title: section.title,
},
},
);
});
};
@@ -44,7 +51,6 @@ const updateLibrary = libraryData => {
libraryData.forEach(async data => {
await models.PlexLibrary.update(
{
userId: 1,
title: data.title,
type: data.type,
views: data.globalViewCount,
@@ -68,7 +74,6 @@ const createLibrary = libraryData => {
libraryData.forEach(async data => {
await models.PlexLibrary.upsert(
{
userId: 1,
title: data.title,
type: data.type,
views: data.views,

View File

@@ -1,8 +0,0 @@
import { forEach } from 'lodash';
import requireDirectory from 'require-directory';
const factories = requireDirectory(module, './');
forEach(factories, (value, key) => {
factories[key] = value.default;
});

View File

@@ -1,32 +0,0 @@
import faker from 'faker';
import models from '../../server/models';
/**
* Generate an object which contains attributes needed
* to successfully create a user instance.
*
* @param {Object} props Properties to use for the user.
*
* @return {Object} An object to build the user from.
*/
const data = async (props = {}) => {
const defaultProps = {
email: faker.internet.email(),
first_name: faker.name.firstName(),
last_name: faker.name.lastName(),
createdAt: faker.date.soon(1),
updatedAt: faker.date.soon(1),
};
return Object.assign({}, defaultProps, props);
};
/**
* Generates a user instance from the properties provided.
*
* @param {Object} props Properties to use for the user.
*
* @return {Object} A user instance
*/
export default async (props = {}) => models.User.create(await data(props));

View File

@@ -1,26 +0,0 @@
import { assert } from 'chai';
import factories from '../../factories';
import truncate from '../../truncate';
import models from '../../../server/models';
describe('User model', () => {
let user;
beforeEach(async () => {
await truncate();
console.log('mike=========', factories);
user = await factories.user();
});
it('should generate a user from the factory', async () => {
assert.isOk(user.id);
});
it('should truncate the user table with each test', async () => {
const count = await models.User.count();
assert.equal(count, 1);
});
});

View File

@@ -1,25 +1,56 @@
// import chai from 'chai';
// import nock from 'nock';
// import app from '../../../../index';
// import responses from './mocks/plexResponses';
import chai from 'chai';
import nock from 'nock';
import app from '../../../../index';
import responses from './mocks/plexResponses';
import { PlexSection, User } from '../../../../server/models';
import truncate from '../../../truncate';
// describe('Users', () => {
// describe('GET /plex/import/sections', async () => {
// it('should find and store sections in the database', (done) => {
// nock('https://plex.mjrflix.com')
// .get('/library/sections?X-Plex-Token=testPlexApiToken')
// .reply(200, responses.sectionsRaw, {
// 'Content-Type': 'text/json',
// });
// before(() => truncate('PlexSection'));
describe('ImportData', () => {
beforeEach(() => {
User.create({
firstName: 'Mike',
lastName: 'Rode',
email: 'michaelrode44@gmail.com',
});
});
describe('GET /plex/import/sections', async () => {
it('should find and store sections in the database', (done) => {
nock('https://plex.mjrflix.com')
.get('/library/sections?X-Plex-Token=testPlexApiToken')
.reply(200, responses.sectionsRaw, {
'Content-Type': 'text/json',
});
// chai
// .request(app)
// .get('/plex/import/sections')
// .end((err, res) => {
// res.should.have.status(200);
// res.body.should.equal('testPlexApiToken');
// done();
// });
// });
// });
// });
chai
.request(app)
.get('/plex/import/sections')
.then(() => PlexSection.findAll().then((sections) => {
console.log('Sections 1', sections);
sections.should.be.a('array');
sections.should.have.length(2);
done();
}))
.catch(done);
});
it('should find and store sections in the database', (done) => {
nock('https://plex.mjrflix.com')
.get('/library/sections?X-Plex-Token=testPlexApiToken')
.reply(200, responses.sectionsRaw, {
'Content-Type': 'text/json',
});
chai
.request(app)
.get('/plex/import/sections')
.then(() => PlexSection.findAll().then((sections) => {
console.log('Sections 2', sections);
sections.should.be.a('array');
sections.should.have.length(2);
done();
}))
.catch(done);
});
});
});