Unit tests for caliper-core: Improve Coverage
current report shows
--------------------------------------------------------------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
--------------------------------------------------------------|----------|----------|----------|----------|----------------|
All files | 48.7 | 39.91 | 41.18 | 48.74 | |
caliper-core | 100 | 100 | 100 | 100 | |
index.js | 100 | 100 | 100 | 100 | |
caliper-core/lib/common/config | 80.7 | 65.52 | 100 | 80.7 | |
Config.js | 76.09 | 58.33 | 100 | 76.09 |... 267,268,290 |
config-util.js | 100 | 100 | 100 | 100 | |
caliper-core/lib/common/core | 82.81 | 90 | 71.88 | 81.77 | |
connector-base.js | 86.54 | 83.33 | 55.56 | 86.54 |... 3,64,66,166 |
connector-interface.js | 18.18 | 100 | 0 | 18.18 |... 8,86,96,105 |
transaction-statistics-collector.js | 96.15 | 93.75 | 98.21 | 95.7 |360,387,410,415 |
transaction-status.js | 48 | 100 | 40.91 | 48 |... 194,203,211 |
caliper-core/lib/common/messages | 55.63 | 9.62 | 22.45 | 55.63 | |
assignIdMessage.js | 60 | 0 | 0 | 60 | 33,41 |
assignedMessage.js | 75 | 0 | 0 | 75 | 32 |
connectedMessage.js | 75 | 0 | 0 | 75 | 32 |
exitMessage.js | 80 | 0 | 0 | 80 | 32 |
initializeMessage.js | 80 | 0 | 0 | 80 | 32 |
message.js | 42.11 | 12.5 | 11.11 | 42.11 |... 140,141,144 |
parse.js | 40.54 | 0 | 0 | 40.54 |... 72,74,76,78 |
prepareMessage.js | 21.43 | 0 | 0 | 21.43 |... ,98,106,114 |
preparedMessage.js | 75 | 0 | 0 | 75 | 32 |
readyMessage.js | 75 | 0 | 0 | 75 | 32 |
registerMessage.js | 80 | 0 | 0 | 80 | 32 |
testMessage.js | 68.42 | 100 | 60 | 68.42 |... 106,122,138 |
testResultMessage.js | 75 | 0 | 0 | 75 | 33 |
txResetMessage.js | 75 | 0 | 0 | 75 | 33 |
txUpdateMessage.js | 60 | 0 | 0 | 60 | 33,35 |
workerMetricsMessage.js | 100 | 100 | 100 | 100 | |
caliper-core/lib/common/messengers | 33.33 | 100 | 12.5 | 33.33 | |
messenger-interface.js | 33.33 | 100 | 12.5 | 33.33 |... 81,90,91,92 |
caliper-core/lib/common/messengers/mqtt | 0 | 0 | 0 | 0 | |
factory.js | 0 | 100 | 0 | 0 |... 28,37,40,41 |
mqtt-messenger.js | 0 | 0 | 0 | 0 |... 154,157,162 |
caliper-core/lib/common/messengers/process | 37.5 | 0 | 25 | 37.5 | |
factory.js | 100 | 100 | 100 | 100 | |
process-messenger.js | 25 | 0 | 14.29 | 25 |... 88,89,90,91 |
caliper-core/lib/common/prometheus | 55.36 | 68.63 | 35 | 54.55 | |
prometheus-query-client.js | 16.33 | 0 | 0 | 16.33 |... 156,159,169 |
prometheus-query-helper.js | 85.71 | 79.55 | 100 | 85.25 |... 163,169,170 |
caliper-core/lib/common/utils | 63.83 | 43.81 | 48.15 | 63.83 | |
benchmark-validator.js | 15 | 0 | 0 | 15 |... 63,72,81,90 |
constants.js | 100 | 100 | 100 | 100 | |
log-formats.js | 96.3 | 88.89 | 100 | 96.3 | 56 |
logging-util.js | 67.18 | 48.72 | 83.33 | 67.18 |... 395,396,397 |
version.js | 22.22 | 100 | 0 | 22.22 |... 55,64,73,81 |
caliper-core/lib/manager | 7.06 | 0 | 0 | 7.06 | |
caliper-engine.js | 7.06 | 0 | 0 | 7.06 |... 181,188,189 |
caliper-core/lib/manager/charts | 98.59 | 86.96 | 100 | 98.59 | |
chart-builder.js | 98.59 | 86.96 | 100 | 98.59 | 210 |
caliper-core/lib/manager/monitors | 53.79 | 35.25 | 39.29 | 53.96 | |
monitor-docker.js | 68.07 | 33.85 | 61.11 | 68.1 |... 411,412,415 |
monitor-interface.js | 50 | 100 | 20 | 50 | 38,45,52,60 |
monitor-process.js | 6.72 | 0 | 0 | 6.78 |... 305,315,326 |
monitor-prometheus.js | 91.78 | 65 | 100 | 91.78 |... 176,177,181 |
monitor-utilities.js | 62.5 | 42.86 | 40 | 63.64 |... ,65,114,134 |
caliper-core/lib/manager/orchestrators | 16.79 | 1.28 | 9.52 | 16.88 | |
monitor-orchestrator.js | 20.37 | 0 | 0 | 20.37 |... 142,143,155 |
round-orchestrator.js | 6.31 | 0 | 0 | 6.36 |... 251,252,254 |
worker-orchestrator.js | 20.94 | 2.86 | 14.29 | 21.03 |... 549,551,557 |
caliper-core/lib/manager/report | 31.41 | 18.42 | 22.73 | 31.41 | |
report-builder.js | 12.12 | 0 | 8.33 | 12.12 |... 372,373,376 |
report.js | 52.17 | 63.64 | 40 | 52.17 |... 226,227,237 |
caliper-core/lib/manager/test-observers | 4.55 | 0 | 0 | 4.65 | |
default-observer.js | 0 | 0 | 0 | 0 |... 252,269,272 |
null-observer.js | 0 | 100 | 0 | 0 |... 71,79,88,91 |
observer-interface.js | 0 | 100 | 0 | 0 |... 71,79,87,92 |
test-observer.js | 31.58 | 0 | 0 | 31.58 |... 69,77,85,93 |
caliper-core/lib/worker | 47.4 | 25.49 | 31.25 | 47.89 | |
caliper-worker.js | 82 | 46.43 | 66.67 | 83.67 |... 165,203,204 |
worker-message-handler.js | 9.78 | 0 | 0 | 9.78 |... 256,258,265 |
caliper-core/lib/worker/rate-control | 46.96 | 45.93 | 46.88 | 47.77 | |
compositeRate.js | 0 | 0 | 0 | 0 |... 251,264,267 |
fixedFeedbackRate.js | 63.16 | 58.33 | 75 | 63.16 |... 101,102,103 |
fixedLoad.js | 90 | 83.33 | 75 | 90 | 72,73,86 |
fixedRate.js | 100 | 83.33 | 75 | 100 | 41 |
linearRate.js | 100 | 100 | 83.33 | 100 | |
maxRate.js | 98.11 | 86.36 | 85.71 | 98.11 | 182 |
noRate.js | 100 | 100 | 75 | 100 | |
rateControl.js | 92.86 | 50 | 100 | 92.86 | 54 |
rateInterface.js | 81.82 | 100 | 33.33 | 81.82 | 44,52 |
recordRate.js | 44.62 | 31.25 | 37.5 | 45.31 |... 158,161,163 |
replayRate.js | 0 | 0 | 0 | 0 |... 143,163,166 |
caliper-core/lib/worker/tx-observers | 68.82 | 71.43 | 54.35 | 69.23 | |
internal-tx-observer.js | 26.09 | 0 | 0 | 27.27 |... 70,71,75,76 |
logging-tx-observer.js | 0 | 0 | 0 | 0 |... 62,65,78,81 |
prometheus-manager-tx-observer.js | 100 | 94.59 | 100 | 100 | 156,167 |
prometheus-push-tx-observer.js | 81.67 | 70.59 | 77.78 | 83.05 |... ,74,113,114 |
prometheus-tx-observer.js | 77.78 | 75 | 85.71 | 77.78 |... 107,109,110 |
tx-observer-dispatch.js | 19.23 | 0 | 0 | 19.23 |... 102,105,106 |
tx-observer-interface.js | 82.61 | 50 | 42.86 | 82.61 | 56,84,92,100 |
caliper-core/lib/worker/workload | 17.39 | 100 | 0 | 17.39 | |
workloadModuleBase.js | 15.79 | 100 | 0 | 15.79 |... 84,85,86,95 |
workloadModuleInterface.js | 25 | 100 | 0 | 25 | 32,40,48 |
caliper-core/lib/worker/workload/declarative | 33.33 | 0 | 18.18 | 33.33 | |
contract-function-parameter.js | 100 | 100 | 100 | 100 | |
contract-function.js | 22.22 | 100 | 0 | 22.22 |... 38,39,40,42 |
contract.js | 37.5 | 100 | 0 | 37.5 | 28,29,30,32,39 |
declarative-workload-module-base.js | 27.27 | 0 | 0 | 27.27 |... 65,74,82,91 |
caliper-core/lib/worker/workload/declarative/value-providers | 99.21 | 100 | 100 | 99.21 | |
formatted-string-value-provider.js | 100 | 100 | 100 | 100 | |
list-element-value-provider.js | 100 | 100 | 100 | 100 | |
parameter-reference-value-provider.js | 100 | 100 | 100 | 100 | |
uniform-random-list-item-value-provider.js | 100 | 100 | 100 | 100 | |
uniform-random-value-provider.js | 100 | 100 | 100 | 100 | |
value-provider-factory.js | 100 | 100 | 100 | 100 | |
value-provider-interface.js | 85.71 | 100 | 100 | 85.71 | 45 |
variable-reference-value-provider.js | 100 | 100 | 100 | 100 | |
--------------------------------------------------------------|----------|----------|----------|----------|----------------|
Which highlights areas to focus on. 100% may not be achievable but we should strive to get to between 90-100 % for each file
New tests should not assume that the code is actually correct. It's expected that if the tests finds bugs or relevant situations where unexpected behaviour occurs then the code should also be fixed.
@davidkel I've been working on adding test suites for packages/caliper-core/lib/worker/rate-control/compositeRate.js. However, I've been facing some technical difficulties related to testing. I'll open a PR for it soon and link the errors too in details.
@davidkel I am working on rate-control/replayRate.js
Some progress made now
--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------
All files | 54.76 | 44.32 | 49.65 | 55.02 |
caliper-core | 100 | 100 | 100 | 100 |
index.js | 100 | 100 | 100 | 100 |
caliper-core/lib/common/config | 80.7 | 65.51 | 100 | 80.7 |
Config.js | 76.08 | 58.33 | 100 | 76.08 | 184,208,212,247-248,253,260-261,267-268,290
config-util.js | 100 | 100 | 100 | 100 |
caliper-core/lib/common/core | 82.47 | 90 | 71.87 | 81.76 |
connector-base.js | 85.18 | 83.33 | 55.55 | 86.53 | 43-66,166
connector-interface.js | 18.18 | 100 | 0 | 18.18 | 31-105
transaction-statistics-collector.js | 96.15 | 93.75 | 98.21 | 95.69 | 360,387,410,415
transaction-status.js | 48 | 100 | 40.9 | 48 | 44-60,119,135-160,176-211
caliper-core/lib/common/messages | 68.3 | 50 | 51.02 | 68.3 |
assignIdMessage.js | 60 | 0 | 0 | 60 | 33-41
assignedMessage.js | 100 | 100 | 100 | 100 |
connectedMessage.js | 100 | 100 | 100 | 100 |
exitMessage.js | 80 | 0 | 0 | 80 | 32
initializeMessage.js | 80 | 0 | 0 | 80 | 32
message.js | 94.73 | 100 | 88.88 | 94.73 | 107
parse.js | 40.54 | 0 | 0 | 40.54 | 39-78
prepareMessage.js | 21.42 | 0 | 0 | 21.42 | 33-114
preparedMessage.js | 100 | 100 | 100 | 100 |
readyMessage.js | 100 | 100 | 100 | 100 |
registerMessage.js | 80 | 0 | 0 | 80 | 32
testMessage.js | 68.42 | 100 | 60 | 68.42 | 42,82-90,106,122,138
testResultMessage.js | 100 | 100 | 100 | 100 |
txResetMessage.js | 100 | 100 | 100 | 100 |
txUpdateMessage.js | 100 | 100 | 100 | 100 |
workerMetricsMessage.js | 100 | 100 | 100 | 100 |
caliper-core/lib/common/messengers | 33.33 | 100 | 12.5 | 33.33 |
messenger-interface.js | 33.33 | 100 | 12.5 | 33.33 | 40-92
caliper-core/lib/common/messengers/mqtt | 0 | 0 | 0 | 0 |
factory.js | 0 | 100 | 0 | 0 | 17-41
mqtt-messenger.js | 0 | 0 | 0 | 0 | 17-162
caliper-core/lib/common/messengers/process | 37.5 | 0 | 25 | 37.5 |
factory.js | 100 | 100 | 100 | 100 |
process-messenger.js | 25 | 0 | 14.28 | 25 | 49-91
caliper-core/lib/common/prometheus | 55.35 | 68.62 | 35 | 54.54 |
prometheus-query-client.js | 16.32 | 0 | 0 | 16.32 | 37-169
prometheus-query-helper.js | 85.71 | 79.54 | 100 | 85.24 | 109-112,134-135,141,163,169-170
caliper-core/lib/common/utils | 49.34 | 36.44 | 40.9 | 49.47 |
benchmark-validator.js | 35 | 5.55 | 40 | 35 | 45-90
caliper-utils.js | 32.12 | 26.71 | 30.76 | 32.29 | ...46,250,262-408,427-428,446-486,509-510,514-515,519-520,524-525,529-530,534-538,542-546,550-554,558-562,566-570,574,578
constants.js | 100 | 100 | 100 | 100 |
log-formats.js | 96.29 | 88.88 | 100 | 96.29 | 56
logging-util.js | 68.7 | 53.84 | 83.33 | 68.7 | 61-95,138-144,209,260,287,295,318-347,353,377-381,393-397
version.js | 22.22 | 100 | 0 | 22.22 | 28-81
caliper-core/lib/manager | 65.11 | 58.33 | 100 | 65.11 |
caliper-engine.js | 65.11 | 58.33 | 100 | 65.11 | 54-57,60-63,69-72,79,99,108,115-118,127,134-137,146,158-162,167
caliper-core/lib/manager/charts | 98.59 | 86.95 | 100 | 98.59 |
chart-builder.js | 98.59 | 86.95 | 100 | 98.59 | 210
caliper-core/lib/manager/monitors | 53.36 | 35.25 | 39.28 | 53.95 |
monitor-docker.js | 67.83 | 33.84 | 61.11 | 68.09 | 72-78,83,100,114,118,121-124,137,165,181,184-185,196,201,213-219,229-277,351-354,401-415
monitor-interface.js | 50 | 100 | 20 | 50 | 38-60
monitor-process.js | 6.5 | 0 | 0 | 6.77 | 35-326
monitor-prometheus.js | 91.78 | 65 | 100 | 91.78 | 50,57,175-181
monitor-utilities.js | 62.5 | 42.85 | 40 | 63.63 | 31-65,114,134
caliper-core/lib/manager/orchestrators | 16.75 | 1.28 | 9.52 | 16.87 |
monitor-orchestrator.js | 20.37 | 0 | 0 | 20.37 | 39-155
round-orchestrator.js | 6.3 | 0 | 0 | 6.36 | 37-254
worker-orchestrator.js | 20.85 | 2.85 | 14.28 | 21.03 | 91-401,440-502,519-557
caliper-core/lib/manager/report | 30.45 | 18.42 | 22.72 | 31.41 |
report-builder.js | 11.42 | 0 | 8.33 | 12.12 | 30-39,127-376
report.js | 52.17 | 63.63 | 40 | 52.17 | 48-75,124-128,178-237
caliper-core/lib/manager/test-observers | 4.51 | 0 | 0 | 4.65 |
default-observer.js | 0 | 0 | 0 | 0 | 18-272
null-observer.js | 0 | 100 | 0 | 0 | 18-91
observer-interface.js | 0 | 100 | 0 | 0 | 17-92
test-observer.js | 31.57 | 0 | 0 | 31.57 | 32-93
caliper-core/lib/worker | 96.87 | 72.54 | 93.75 | 97.89 |
caliper-worker.js | 97 | 67.85 | 86.66 | 98.97 | 62
worker-message-handler.js | 96.73 | 78.26 | 100 | 96.73 | 187,213,238
caliper-core/lib/worker/rate-control | 59.05 | 60.28 | 53.96 | 59.85 |
compositeRate.js | 0 | 0 | 0 | 0 | 16-267
fixedFeedbackRate.js | 100 | 95.83 | 75 | 100 | 49
fixedLoad.js | 90 | 83.33 | 75 | 90 | 72-73,86
fixedRate.js | 100 | 83.33 | 75 | 100 | 41
linearRate.js | 100 | 100 | 83.33 | 100 |
maxRate.js | 98.11 | 86.36 | 85.71 | 98.11 | 182
noRate.js | 100 | 100 | 75 | 100 |
rateControl.js | 92.85 | 50 | 100 | 92.85 | 54
rateInterface.js | 81.81 | 100 | 33.33 | 81.81 | 44-52
recordRate.js | 95.83 | 86.36 | 100 | 95.65 | 163-164,169
replayRate.js | 0 | 0 | 0 | 0 | 17-166
caliper-core/lib/worker/tx-observers | 93.21 | 86.36 | 93.47 | 93.5 |
internal-tx-observer.js | 100 | 100 | 100 | 100 |
logging-tx-observer.js | 100 | 83.33 | 100 | 100 | 35
prometheus-manager-tx-observer.js | 100 | 94.59 | 100 | 100 | 156-167
prometheus-push-tx-observer.js | 81.66 | 70.58 | 77.77 | 83.05 | 67-74,113-114
prometheus-tx-observer.js | 92.06 | 96.87 | 85.71 | 92.06 | 106-111
tx-observer-dispatch.js | 93.75 | 100 | 100 | 93.75 | 48-49
tx-observer-interface.js | 96.55 | 60 | 100 | 96.55 | 100
caliper-core/lib/worker/workload | 17.39 | 100 | 0 | 17.39 |
workloadModuleBase.js | 15.78 | 100 | 0 | 15.78 | 28-95
workloadModuleInterface.js | 25 | 100 | 0 | 25 | 32-48
--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------