iot-dashboard
Version:
A generic dashboard application based on JavaScript, HTML and CSS. http://iot-dashboard.org
423 lines (422 loc) • 13.3 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for src/store.ts</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">src/</a> store.ts
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">83.61% </span>
<span class="quiet">Statements</span>
<span class='fraction'>51/61</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">50% </span>
<span class="quiet">Branches</span>
<span class='fraction'>7/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">66.67% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/9</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">86.44% </span>
<span class="quiet">Lines</span>
<span class='fraction'>51/59</span>
</div>
</div>
</div>
<div class='status-line high'></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
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</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </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-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-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-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-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">41×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">41×</span>
<span class="cline-any cline-yes">41×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">16×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">14×</span>
<span class="cline-any cline-yes">14×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </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"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">18×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var Redux = require("redux");
var redux_thunk_1 = require("redux-thunk");
var createLogger = require("redux-logger");
var Widgets = require("./widgets/widgets");
var WidgetConfig = require("./widgets/widgetConfig.js");
var Layouts = require("./layouts/layouts.js");
var Datasource = require("./datasource/datasource");
var DatasourceData = require("./datasource/datasourceData");
var Global = require("./dashboard/global.js");
var Import = require("./dashboard/import");
var Modal = require("./modal/modalDialog.js");
var Persist = require("./persistence");
var Plugins = require('./pluginApi/pluginLoader');
var redux_form_1 = require("redux-form");
var Action = require("./actionNames");
var WidgetPlugins = require("./widgets/widgetPlugins");
var DatasourcePlugins = require("./datasource/datasourcePlugins");
var Config = require("./config");
// TODO: name all reducers ***Reducer
var appReducer = Redux.combineReducers({
config: Config.config,
currentLayout: Layouts.currentLayout,
datasourceData: DatasourceData.datasourceData,
datasourcePlugins: DatasourcePlugins.datasourcePlugins,
datasources: Datasource.datasources,
form: redux_form_1.reducer,
global: Global.global,
layouts: Layouts.layouts,
modalDialog: Modal.modalDialog,
pluginLoader: Plugins.pluginLoaderReducer,
widgetConfig: WidgetConfig.widgetConfigDialog,
widgetPlugins: WidgetPlugins.widgetPlugins,
widgets: Widgets.widgets
});
var reducer = function (state, action) {
<span class="missing-if-branch" title="if path not taken" >I</span>if (action.type === Action.CLEAR_STATE) {
<span class="cstat-no" title="statement not covered" > state = undefined;</span>
}
state = Import.importReducer(state, action);
return appReducer(state, action);
};
var logger = createLogger({
duration: false,
timestamp: true,
logErrors: true,
predicate: <span class="fstat-no" title="function not covered" >function (getState, action) {</span>
<span class="cstat-no" title="statement not covered" > if (action.type.startsWith("redux-form")) {</span>
<span class="cstat-no" title="statement not covered" > return false;</span>
}
<span class="cstat-no" title="statement not covered" > return !action.doNotLog;</span>
}
});
function emptyState() {
return {
config: null,
widgets: {},
datasources: {},
datasourceData: {},
datasourcePlugins: {},
widgetPlugins: {},
pluginLoader: {
loadingUrls: []
}
};
}
exports.emptyState = emptyState;
/**
* Create a store as empty as possible
*/
function createEmpty(options) {
<span class="missing-if-branch" title="if path not taken" >I</span>if (options === void 0) { <span class="cstat-no" title="statement not covered" >options = { log: true }; </span>}
return create(emptyState(), options);
}
exports.createEmpty = createEmpty;
/**
* Create a store with default values
*/
function createDefault(options) {
<span class="missing-if-branch" title="if path not taken" >I</span>if (options === void 0) { <span class="cstat-no" title="statement not covered" >options = { log: true }; </span>}
return create(undefined, options);
}
exports.createDefault = createDefault;
function testStoreOptions() {
return { log: false, persist: false };
}
exports.testStoreOptions = testStoreOptions;
<span class="fstat-no" title="function not covered" >function defaultStoreOptions() {</span>
<span class="cstat-no" title="statement not covered" > return { log: true, persist: true };</span>
}
exports.defaultStoreOptions = defaultStoreOptions;
/**
* Create a store and execute all side-effects to have a consistent app
*/
function create(initialState, options) {
if (!initialState) {
initialState = Persist.loadFromLocalStorage();
}
var middleware = [];
middleware.push(redux_thunk_1.default);
<span class="missing-if-branch" title="if path not taken" >I</span>if (options.persist) {
<span class="cstat-no" title="statement not covered" > middleware.push(Persist.persistenceMiddleware);</span>
}
<span class="missing-if-branch" title="if path not taken" >I</span>if (options.log) {
<span class="cstat-no" title="statement not covered" > middleware.push(logger); </span>// must be last
}
return Redux.createStore(reducer, initialState, Redux.applyMiddleware.apply(Redux, middleware));
}
exports.create = create;
<span class="fstat-no" title="function not covered" >function clearState() {</span>
<span class="cstat-no" title="statement not covered" > return {</span>
type: Action.CLEAR_STATE
};
}
exports.clearState = clearState;
</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 Fri Nov 04 2016 11:23:08 GMT+0000 (UTC)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>