UNPKG

ih-black-lion

Version:

State handler for Arus projects

342 lines (341 loc) 11.8 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for reducers/NavigationCollectionReducer.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../prettify.css" /> <link rel="stylesheet" href="../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../index.html">All files</a> / <a href="index.html">reducers</a> NavigationCollectionReducer.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">18.75% </span> <span class="quiet">Statements</span> <span class='fraction'>6/32</span> </div> <div class='fl pad1y space-right2'> <span class="strong">31.25% </span> <span class="quiet">Branches</span> <span class='fraction'>5/16</span> </div> <div class='fl pad1y space-right2'> <span class="strong">12.5% </span> <span class="quiet">Functions</span> <span class='fraction'>1/8</span> </div> <div class='fl pad1y space-right2'> <span class="strong">20.69% </span> <span class="quiet">Lines</span> <span class='fraction'>6/29</span> </div> </div> </div> <div class='status-line low'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">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</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-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-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-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-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-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-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-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-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-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-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-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">4x</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-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</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-yes">1x</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 matchSorter from 'match-sorter'; import Fuse from 'fuse.js'; import { request, invalidate, toArray, receiveNested as receive } from '../boilerplate'; import { REQUEST_NAVCOL, RECEIVE_NAVCOL, INVALIDATE_NAVCOL, SEARCH_NAVCOL } from '../actionTypes'; &nbsp; const initState = { isFetching: false, didInvalidate: false, data: {}, }; &nbsp; function <span class="fstat-no" title="function not covered" >search(</span>state, action) { const searchResults = <span class="cstat-no" title="statement not covered" >[];</span> <span class="cstat-no" title="statement not covered" > if (action.searchString.length &gt; 2) {</span> <span class="cstat-no" title="statement not covered" > for (const object in state.data) {</span> const nav = <span class="cstat-no" title="statement not covered" >state.data[object];</span> <span class="cstat-no" title="statement not covered" > try {</span> const fuse = <span class="cstat-no" title="statement not covered" >new Fuse(toArray(nav.contents).filter(<span class="fstat-no" title="function not covered" >it</span>em =&gt; <span class="cstat-no" title="statement not covered" >!item.contents)</span>, {</span> keys: [ { name: 'label', weight: 0.9, }, { name: 'description', weight: 0.1, }, ], shouldSort: true, threshold: 0.3, location: 0, distance: 80, maxPatternLength: 32, minMatchCharLength: 2, include: ['score'], }); const NavItems = <span class="cstat-no" title="statement not covered" >fuse.search(action.searchString);</span> <span class="cstat-no" title="statement not covered" > toArray(nav.contents).filter(<span class="fstat-no" title="function not covered" >it</span>em =&gt; <span class="cstat-no" title="statement not covered" >item.contents)</span>.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span> <span class="cstat-no" title="statement not covered" > fuse.set(toArray(item.contents));</span> <span class="cstat-no" title="statement not covered" > fuse.search(action.searchString).map(<span class="fstat-no" title="function not covered" >ch</span>ildItem =&gt; <span class="cstat-no" title="statement not covered" >NavItems.push(childItem))</span>;</span> }); <span class="cstat-no" title="statement not covered" > if (NavItems.length &gt; 0) {</span> <span class="cstat-no" title="statement not covered" > searchResults.push({</span> Name: nav.name, Label: nav.label, HasResults: NavItems.length &gt; 0, NavItems, Score: NavItems.length &gt; 0 ? NavItems.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, item) =&gt; <span class="cstat-no" title="statement not covered" >acc + item.score,</span> 0) / NavItems.length : 0, }); } } catch (exception) { <span class="cstat-no" title="statement not covered" > console.log(exception);</span> } } } &nbsp; const returnResults = <span class="cstat-no" title="statement not covered" >searchResults.sort(<span class="fstat-no" title="function not covered" >(f</span>irst, second) =&gt; {</span> <span class="cstat-no" title="statement not covered" > if (first.Score &gt; second.Score) {</span> <span class="cstat-no" title="statement not covered" > return 1;</span> } <span class="cstat-no" title="statement not covered" > if (first.Score &lt; second.Score) {</span> <span class="cstat-no" title="statement not covered" > return -1;</span> } <span class="cstat-no" title="statement not covered" > return 0;</span> }); &nbsp; const nextState = <span class="cstat-no" title="statement not covered" >{</span> searchResults: returnResults, lastAction: { type: SEARCH_NAVCOL, }, }; &nbsp; <span class="cstat-no" title="statement not covered" > return { ...state, ...nextState };</span> } &nbsp; export default function navCollectionReducer(state = initState, action) { switch (action.type) { case REQUEST_NAVCOL: return request(state, action); case RECEIVE_NAVCOL: return receive(state, action); case INVALIDATE_NAVCOL: return invalidate(state, action); <span class="branch-3 cbranch-no" title="branch not covered" > case SEARCH_NAVCOL:</span> <span class="cstat-no" title="statement not covered" > return search(state, action);</span> default: return state; } } &nbsp;</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Apr 17 2017 09:12:03 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>