@cloudant/couchbackup 2.9.8 → 2.9.9-SNAPSHOT.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  3. package/.scannerwork/scanner-report/analysis.log +1 -1
  4. package/.scannerwork/scanner-report/changesets-10.pb +2 -0
  5. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-40.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-55.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-56.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-59.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-62.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-67.pb +1 -0
  17. package/.scannerwork/scanner-report/component-1.pb +2 -1
  18. package/.scannerwork/scanner-report/component-10.pb +2 -0
  19. package/.scannerwork/scanner-report/component-2.pb +1 -0
  20. package/.scannerwork/scanner-report/component-24.pb +1 -1
  21. package/.scannerwork/scanner-report/component-25.pb +1 -1
  22. package/.scannerwork/scanner-report/component-26.pb +1 -1
  23. package/.scannerwork/scanner-report/component-27.pb +1 -1
  24. package/.scannerwork/scanner-report/component-28.pb +1 -1
  25. package/.scannerwork/scanner-report/component-29.pb +1 -1
  26. package/.scannerwork/scanner-report/component-30.pb +1 -1
  27. package/.scannerwork/scanner-report/component-32.pb +1 -1
  28. package/.scannerwork/scanner-report/component-33.pb +1 -1
  29. package/.scannerwork/scanner-report/component-34.pb +1 -1
  30. package/.scannerwork/scanner-report/component-35.pb +1 -1
  31. package/.scannerwork/scanner-report/component-36.pb +1 -1
  32. package/.scannerwork/scanner-report/component-37.pb +1 -1
  33. package/.scannerwork/scanner-report/component-38.pb +1 -1
  34. package/.scannerwork/scanner-report/component-39.pb +1 -0
  35. package/.scannerwork/scanner-report/component-40.pb +1 -1
  36. package/.scannerwork/scanner-report/component-41.pb +1 -1
  37. package/.scannerwork/scanner-report/component-42.pb +1 -1
  38. package/.scannerwork/scanner-report/component-48.pb +1 -1
  39. package/.scannerwork/scanner-report/component-49.pb +1 -1
  40. package/.scannerwork/scanner-report/component-5.pb +1 -1
  41. package/.scannerwork/scanner-report/component-50.pb +1 -1
  42. package/.scannerwork/scanner-report/component-51.pb +1 -1
  43. package/.scannerwork/scanner-report/component-52.pb +1 -1
  44. package/.scannerwork/scanner-report/component-54.pb +1 -1
  45. package/.scannerwork/scanner-report/component-55.pb +1 -1
  46. package/.scannerwork/scanner-report/component-56.pb +1 -0
  47. package/.scannerwork/scanner-report/component-57.pb +1 -1
  48. package/.scannerwork/scanner-report/component-58.pb +1 -1
  49. package/.scannerwork/scanner-report/component-59.pb +1 -1
  50. package/.scannerwork/scanner-report/component-6.pb +1 -1
  51. package/.scannerwork/scanner-report/component-60.pb +1 -0
  52. package/.scannerwork/scanner-report/component-61.pb +1 -1
  53. package/.scannerwork/scanner-report/component-62.pb +1 -0
  54. package/.scannerwork/scanner-report/component-63.pb +1 -0
  55. package/.scannerwork/scanner-report/component-64.pb +1 -0
  56. package/.scannerwork/scanner-report/component-65.pb +1 -1
  57. package/.scannerwork/scanner-report/component-66.pb +1 -1
  58. package/.scannerwork/scanner-report/component-67.pb +1 -0
  59. package/.scannerwork/scanner-report/component-7.pb +1 -1
  60. package/.scannerwork/scanner-report/component-9.pb +1 -0
  61. package/.scannerwork/scanner-report/coverages-10.pb +0 -0
  62. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  63. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  64. package/.scannerwork/scanner-report/coverages-26.pb +0 -0
  65. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  66. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  67. package/.scannerwork/scanner-report/coverages-29.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-39.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-40.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-41.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-48.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-50.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-61.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-62.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-63.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  93. package/.scannerwork/scanner-report/duplications-22.pb +2 -2
  94. package/.scannerwork/scanner-report/duplications-26.pb +2 -0
  95. package/.scannerwork/scanner-report/duplications-28.pb +3 -0
  96. package/.scannerwork/scanner-report/duplications-29.pb +2 -0
  97. package/.scannerwork/scanner-report/duplications-32.pb +0 -2
  98. package/.scannerwork/scanner-report/duplications-36.pb +0 -2
  99. package/.scannerwork/scanner-report/duplications-41.pb +3 -0
  100. package/.scannerwork/scanner-report/duplications-42.pb +2 -0
  101. package/.scannerwork/scanner-report/duplications-48.pb +2 -0
  102. package/.scannerwork/scanner-report/duplications-49.pb +2 -0
  103. package/.scannerwork/scanner-report/duplications-55.pb +2 -0
  104. package/.scannerwork/scanner-report/duplications-60.pb +2 -0
  105. package/.scannerwork/scanner-report/duplications-62.pb +0 -0
  106. package/.scannerwork/scanner-report/duplications-63.pb +0 -0
  107. package/.scannerwork/scanner-report/duplications-64.pb +0 -0
  108. package/.scannerwork/scanner-report/duplications-65.pb +0 -2
  109. package/.scannerwork/scanner-report/duplications-67.pb +0 -0
  110. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  111. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  112. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  113. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  114. package/.scannerwork/scanner-report/measures-26.pb +0 -0
  115. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-41.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-42.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-48.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-50.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-63.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  149. package/.scannerwork/scanner-report/metadata.pb +0 -0
  150. package/.scannerwork/scanner-report/{source-4.txt → source-10.txt} +8 -13
  151. package/.scannerwork/scanner-report/source-2.txt +167 -0
  152. package/.scannerwork/scanner-report/source-24.txt +17 -607
  153. package/.scannerwork/scanner-report/source-25.txt +14 -7
  154. package/.scannerwork/scanner-report/source-26.txt +264 -34
  155. package/.scannerwork/scanner-report/source-27.txt +125 -19
  156. package/.scannerwork/scanner-report/source-28.txt +114 -125
  157. package/.scannerwork/scanner-report/source-29.txt +121 -342
  158. package/.scannerwork/scanner-report/source-30.txt +38 -11
  159. package/.scannerwork/scanner-report/source-32.txt +16 -127
  160. package/.scannerwork/scanner-report/source-33.txt +111 -120
  161. package/.scannerwork/scanner-report/source-34.txt +348 -50
  162. package/.scannerwork/scanner-report/source-35.txt +27 -127
  163. package/.scannerwork/scanner-report/source-36.txt +43 -200
  164. package/.scannerwork/scanner-report/source-37.txt +15 -93
  165. package/.scannerwork/scanner-report/source-38.txt +68 -167
  166. package/.scannerwork/scanner-report/source-39.txt +156 -0
  167. package/.scannerwork/scanner-report/source-40.txt +625 -509
  168. package/.scannerwork/scanner-report/source-41.txt +230 -17
  169. package/.scannerwork/scanner-report/source-42.txt +199 -78
  170. package/.scannerwork/scanner-report/source-48.txt +149 -92
  171. package/.scannerwork/scanner-report/source-49.txt +168 -107
  172. package/.scannerwork/scanner-report/source-5.txt +509 -244
  173. package/.scannerwork/scanner-report/source-50.txt +53 -257
  174. package/.scannerwork/scanner-report/source-51.txt +37 -61
  175. package/.scannerwork/scanner-report/source-52.txt +32 -89
  176. package/.scannerwork/scanner-report/source-54.txt +246 -129
  177. package/.scannerwork/scanner-report/source-55.txt +75 -509
  178. package/.scannerwork/scanner-report/source-57.txt +96 -55
  179. package/.scannerwork/scanner-report/source-58.txt +61 -37
  180. package/.scannerwork/scanner-report/source-59.txt +104 -509
  181. package/.scannerwork/scanner-report/source-6.txt +509 -68
  182. package/.scannerwork/scanner-report/source-61.txt +164 -509
  183. package/.scannerwork/scanner-report/source-62.txt +129 -0
  184. package/.scannerwork/scanner-report/source-63.txt +111 -0
  185. package/.scannerwork/scanner-report/source-65.txt +14 -173
  186. package/.scannerwork/scanner-report/source-66.txt +509 -175
  187. package/.scannerwork/scanner-report/source-7.txt +96 -29
  188. package/.scannerwork/scanner-report/source-9.txt +509 -0
  189. package/.scannerwork/scanner-report/symbols-10.pb +9 -0
  190. package/.scannerwork/scanner-report/symbols-24.pb +16 -1253
  191. package/.scannerwork/scanner-report/symbols-25.pb +13 -8
  192. package/.scannerwork/scanner-report/symbols-26.pb +485 -42
  193. package/.scannerwork/scanner-report/symbols-27.pb +116 -11
  194. package/.scannerwork/scanner-report/symbols-28.pb +97 -116
  195. package/.scannerwork/scanner-report/symbols-29.pb +102 -494
  196. package/.scannerwork/scanner-report/symbols-30.pb +43 -14
  197. package/.scannerwork/scanner-report/symbols-32.pb +10 -102
  198. package/.scannerwork/scanner-report/symbols-33.pb +80 -107
  199. package/.scannerwork/scanner-report/symbols-34.pb +494 -36
  200. package/.scannerwork/scanner-report/symbols-35.pb +27 -85
  201. package/.scannerwork/scanner-report/symbols-36.pb +35 -417
  202. package/.scannerwork/scanner-report/symbols-37.pb +11 -28
  203. package/.scannerwork/scanner-report/symbols-39.pb +112 -0
  204. package/.scannerwork/scanner-report/symbols-40.pb +1254 -0
  205. package/.scannerwork/scanner-report/symbols-41.pb +393 -13
  206. package/.scannerwork/scanner-report/symbols-42.pb +417 -41
  207. package/.scannerwork/scanner-report/symbols-48.pb +153 -30
  208. package/.scannerwork/scanner-report/symbols-49.pb +180 -33
  209. package/.scannerwork/scanner-report/symbols-50.pb +30 -354
  210. package/.scannerwork/scanner-report/symbols-51.pb +18 -45
  211. package/.scannerwork/scanner-report/symbols-52.pb +14 -58
  212. package/.scannerwork/scanner-report/symbols-54.pb +353 -125
  213. package/.scannerwork/scanner-report/symbols-57.pb +30 -30
  214. package/.scannerwork/scanner-report/symbols-58.pb +45 -18
  215. package/.scannerwork/scanner-report/symbols-59.pb +42 -0
  216. package/.scannerwork/scanner-report/symbols-61.pb +126 -0
  217. package/.scannerwork/scanner-report/symbols-62.pb +33 -0
  218. package/.scannerwork/scanner-report/symbols-63.pb +59 -0
  219. package/.scannerwork/scanner-report/symbols-65.pb +14 -180
  220. package/.scannerwork/scanner-report/symbols-7.pb +27 -26
  221. package/.scannerwork/scanner-report/{syntax-highlightings-4.pb → syntax-highlightings-10.pb} +13 -15
  222. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +949 -0
  223. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +27 -851
  224. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +18 -12
  225. package/.scannerwork/scanner-report/syntax-highlightings-26.pb +623 -46
  226. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +100 -25
  227. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +147 -99
  228. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +189 -592
  229. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +47 -19
  230. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +14 -191
  231. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +146 -178
  232. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +593 -58
  233. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +28 -151
  234. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +58 -294
  235. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +24 -103
  236. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +99 -937
  237. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +223 -0
  238. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +536 -3398
  239. package/.scannerwork/scanner-report/syntax-highlightings-41.pb +299 -15
  240. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +299 -84
  241. package/.scannerwork/scanner-report/syntax-highlightings-48.pb +184 -83
  242. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +192 -96
  243. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +3640 -222
  244. package/.scannerwork/scanner-report/syntax-highlightings-50.pb +73 -255
  245. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +61 -74
  246. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +20 -99
  247. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +209 -137
  248. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +67 -3735
  249. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +94 -84
  250. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +74 -61
  251. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +105 -3736
  252. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +3737 -99
  253. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +192 -3727
  254. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +129 -0
  255. package/.scannerwork/scanner-report/syntax-highlightings-63.pb +133 -0
  256. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +15 -195
  257. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +3732 -199
  258. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +103 -33
  259. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +3749 -0
  260. package/package.json +4 -4
  261. package/test-14-results.xml +152 -152
  262. package/test-16-results.xml +156 -156
  263. package/test-18-results.xml +153 -153
  264. package/test-19-results.xml +147 -147
  265. package/test-iam-18-results.xml +50 -50
  266. package/.scannerwork/scanner-report/changesets-19.pb +0 -1
  267. package/.scannerwork/scanner-report/changesets-20.pb +0 -1
  268. package/.scannerwork/scanner-report/changesets-21.pb +0 -1
  269. package/.scannerwork/scanner-report/changesets-4.pb +0 -1
  270. package/.scannerwork/scanner-report/changesets-43.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-44.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-45.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-46.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-47.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-5.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  277. package/.scannerwork/scanner-report/changesets-66.pb +0 -1
  278. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  279. package/.scannerwork/scanner-report/component-19.pb +0 -1
  280. package/.scannerwork/scanner-report/component-20.pb +0 -1
  281. package/.scannerwork/scanner-report/component-21.pb +0 -1
  282. package/.scannerwork/scanner-report/component-4.pb +0 -1
  283. package/.scannerwork/scanner-report/component-43.pb +0 -1
  284. package/.scannerwork/scanner-report/component-44.pb +0 -1
  285. package/.scannerwork/scanner-report/component-45.pb +0 -1
  286. package/.scannerwork/scanner-report/component-46.pb +0 -1
  287. package/.scannerwork/scanner-report/component-47.pb +0 -1
  288. package/.scannerwork/scanner-report/component-69.pb +0 -1
  289. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  290. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  291. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  292. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  293. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  294. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  295. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  296. package/.scannerwork/scanner-report/duplications-19.pb +0 -3
  297. package/.scannerwork/scanner-report/duplications-21.pb +0 -2
  298. package/.scannerwork/scanner-report/duplications-43.pb +0 -2
  299. package/.scannerwork/scanner-report/duplications-45.pb +0 -2
  300. package/.scannerwork/scanner-report/duplications-5.pb +0 -3
  301. package/.scannerwork/scanner-report/duplications-66.pb +0 -2
  302. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  303. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  304. package/.scannerwork/scanner-report/measures-21.pb +0 -15
  305. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  306. package/.scannerwork/scanner-report/measures-45.pb +0 -0
  307. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  308. package/.scannerwork/scanner-report/source-19.txt +0 -131
  309. package/.scannerwork/scanner-report/source-20.txt +0 -35
  310. package/.scannerwork/scanner-report/source-21.txt +0 -293
  311. package/.scannerwork/scanner-report/source-45.txt +0 -75
  312. package/.scannerwork/scanner-report/source-46.txt +0 -54
  313. package/.scannerwork/scanner-report/symbols-19.pb +0 -97
  314. package/.scannerwork/scanner-report/symbols-20.pb +0 -17
  315. package/.scannerwork/scanner-report/symbols-21.pb +0 -486
  316. package/.scannerwork/scanner-report/symbols-4.pb +0 -10
  317. package/.scannerwork/scanner-report/symbols-46.pb +0 -15
  318. package/.scannerwork/scanner-report/symbols-5.pb +0 -394
  319. package/.scannerwork/scanner-report/symbols-66.pb +0 -153
  320. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +0 -182
  321. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +0 -63
  322. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +0 -659
  323. package/.scannerwork/scanner-report/syntax-highlightings-45.pb +0 -78
  324. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +0 -54
  325. /package/.scannerwork/scanner-report/{coverages-6.pb → coverages-38.pb} +0 -0
  326. /package/.scannerwork/scanner-report/{coverages-45.pb → coverages-55.pb} +0 -0
  327. /package/.scannerwork/scanner-report/{coverages-47.pb → coverages-56.pb} +0 -0
  328. /package/.scannerwork/scanner-report/{coverages-43.pb → coverages-60.pb} +0 -0
  329. /package/.scannerwork/scanner-report/{coverages-44.pb → coverages-64.pb} +0 -0
  330. /package/.scannerwork/scanner-report/{coverages-69.pb → coverages-67.pb} +0 -0
  331. /package/.scannerwork/scanner-report/{duplications-20.pb → duplications-25.pb} +0 -0
  332. /package/.scannerwork/scanner-report/{duplications-4.pb → duplications-38.pb} +0 -0
  333. /package/.scannerwork/scanner-report/{duplications-44.pb → duplications-39.pb} +0 -0
  334. /package/.scannerwork/scanner-report/{duplications-46.pb → duplications-40.pb} +0 -0
  335. /package/.scannerwork/scanner-report/{duplications-47.pb → duplications-56.pb} +0 -0
  336. /package/.scannerwork/scanner-report/{duplications-6.pb → duplications-59.pb} +0 -0
  337. /package/.scannerwork/scanner-report/{duplications-69.pb → duplications-61.pb} +0 -0
  338. /package/.scannerwork/scanner-report/{issues-28.pb → issues-27.pb} +0 -0
  339. /package/.scannerwork/scanner-report/{issues-29.pb → issues-34.pb} +0 -0
  340. /package/.scannerwork/scanner-report/{issues-7.pb → issues-35.pb} +0 -0
  341. /package/.scannerwork/scanner-report/{issues-5.pb → issues-41.pb} +0 -0
  342. /package/.scannerwork/scanner-report/{measures-47.pb → measures-56.pb} +0 -0
  343. /package/.scannerwork/scanner-report/{measures-43.pb → measures-60.pb} +0 -0
  344. /package/.scannerwork/scanner-report/{measures-44.pb → measures-64.pb} +0 -0
  345. /package/.scannerwork/scanner-report/{measures-69.pb → measures-67.pb} +0 -0
  346. /package/.scannerwork/scanner-report/{source-47.txt → source-56.txt} +0 -0
  347. /package/.scannerwork/scanner-report/{source-43.txt → source-60.txt} +0 -0
  348. /package/.scannerwork/scanner-report/{source-44.txt → source-64.txt} +0 -0
  349. /package/.scannerwork/scanner-report/{source-69.txt → source-67.txt} +0 -0
  350. /package/.scannerwork/scanner-report/{symbols-6.pb → symbols-38.pb} +0 -0
  351. /package/.scannerwork/scanner-report/{symbols-45.pb → symbols-55.pb} +0 -0
  352. /package/.scannerwork/scanner-report/{symbols-47.pb → symbols-56.pb} +0 -0
  353. /package/.scannerwork/scanner-report/{symbols-43.pb → symbols-60.pb} +0 -0
  354. /package/.scannerwork/scanner-report/{symbols-44.pb → symbols-64.pb} +0 -0
  355. /package/.scannerwork/scanner-report/{symbols-69.pb → symbols-67.pb} +0 -0
  356. /package/.scannerwork/scanner-report/{syntax-highlightings-47.pb → syntax-highlightings-56.pb} +0 -0
  357. /package/.scannerwork/scanner-report/{syntax-highlightings-43.pb → syntax-highlightings-60.pb} +0 -0
  358. /package/.scannerwork/scanner-report/{syntax-highlightings-44.pb → syntax-highlightings-64.pb} +0 -0
  359. /package/.scannerwork/scanner-report/{syntax-highlightings-69.pb → syntax-highlightings-67.pb} +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2022 IBM Corp. All rights reserved.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -12,355 +12,134 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe afterEach before after it */
15
+ /* global describe it beforeEach */
16
16
  'use strict';
17
17
 
18
18
  const assert = require('assert');
19
- const parser = require('../includes/parser.js');
20
-
21
- describe('#unit Default parameters', function() {
22
- let processEnvCopy;
23
- let processArgvCopy;
24
-
25
- before('Set process data for test', function() {
26
- // Copy env and argv so we can reset them after the tests
27
- processEnvCopy = JSON.parse(JSON.stringify(process.env));
28
- processArgvCopy = JSON.parse(JSON.stringify(process.argv));
29
-
30
- // setup environment variables
31
- process.env.COUCH_URL = 'http://user:pass@myurl.com';
32
- process.env.COUCH_DATABASE = 'mydb';
33
- process.env.COUCH_BUFFER_SIZE = '1000';
34
- process.env.COUCH_PARALLELISM = '20';
35
- process.env.COUCH_REQUEST_TIMEOUT = '20000';
36
- process.env.COUCH_LOG = 'my.log';
37
- process.env.COUCH_RESUME = 'true';
38
- process.env.COUCH_OUTPUT = 'myfile.txt';
39
- process.env.COUCH_MODE = 'shallow';
40
- process.env.CLOUDANT_IAM_API_KEY = 'ABC123-ZYX987_cba789-xyz321';
41
- process.env.COUCH_QUIET = 'true';
42
- });
43
-
44
- after('Reset process data', function() {
45
- process.env = processEnvCopy;
46
- process.argv = processArgvCopy;
19
+ const backup = require('../includes/shallowbackup.js');
20
+ const request = require('../includes/request.js');
21
+ const fs = require('fs');
22
+ const nock = require('nock');
23
+
24
+ // Function to create a DB object and call the shallow backup function
25
+ // This is normally done by app.js
26
+ function shallowBackup(dbUrl, opts) {
27
+ const db = request.client(dbUrl, opts);
28
+ // Disable compression to make body assertions easier
29
+ db.service.setEnableGzipCompression(false);
30
+ return backup(db, opts);
31
+ }
32
+
33
+ // Note all these tests include a body parameter of include_docs and a query
34
+ // string of include_docs because of a quirk of nano that when using the fetch
35
+ // method always adds the include_docs query string.
36
+ describe('#unit Perform backup using shallow backup', function() {
37
+ const dbUrl = 'http://localhost:5984/animaldb';
38
+ // Query string keys are stringified by Nano
39
+ const badgerKey = 'badger\0';
40
+ const kookaburraKey = 'kookaburra\0';
41
+ const snipeKey = 'snipe\0';
42
+
43
+ beforeEach('Reset nocks', function() {
44
+ nock.cleanAll();
47
45
  });
48
46
 
49
- afterEach(function() {
50
- delete require.cache[require.resolve('commander')];
47
+ it('should perform a shallow backup', function(done) {
48
+ const couch = nock(dbUrl)
49
+ // batch 1
50
+ .post('/_all_docs', { limit: 3, include_docs: true })
51
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
52
+ // batch 2
53
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
54
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
55
+ // batch 3
56
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
57
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_3.json', 'utf8')))
58
+ // batch 4
59
+ .post('/_all_docs', { limit: 3, start_key: snipeKey, include_docs: true })
60
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_4.json', 'utf8')));
61
+
62
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
63
+ .on('error', function(err) {
64
+ assert.fail(err);
65
+ })
66
+ .on('received', function(data) {
67
+ if (data.batch === 3) {
68
+ assert.strictEqual(data.length, 2); // smaller last batch
69
+ } else {
70
+ assert.strictEqual(data.length, 3);
71
+ }
72
+ })
73
+ .on('finished', function(data) {
74
+ assert.strictEqual(data.total, 11);
75
+ assert.ok(couch.isDone());
76
+ done();
77
+ });
51
78
  });
52
79
 
53
- describe('Backup command-line', function() {
54
- it('respects the COUCH_URL env variable if the --url backup command-line parameter is missing', function(done) {
55
- process.argv = ['node', 'test'];
56
- const program = parser.parseBackupArgs();
57
- assert.strictEqual(typeof program.url, 'string');
58
- assert.strictEqual(program.url, process.env.COUCH_URL);
59
- done();
60
- });
61
-
62
- it('respects the COUCH_DATABASE env variable if the --db backup command-line parameter is missing', function(done) {
63
- process.argv = ['node', 'test'];
64
- const program = parser.parseBackupArgs();
65
- assert.strictEqual(typeof program.db, 'string');
66
- assert.strictEqual(program.db, process.env.COUCH_DATABASE);
67
- done();
68
- });
69
-
70
- it('respects the COUCH_BUFFER_SIZE env variable if the --buffer-size backup command-line parameter is missing', function(done) {
71
- process.argv = ['node', 'test'];
72
- const program = parser.parseBackupArgs();
73
- assert.strictEqual(typeof program.bufferSize, 'number');
74
- assert.strictEqual(program.bufferSize, parseInt(process.env.COUCH_BUFFER_SIZE, 10));
75
- done();
76
- });
77
-
78
- it('respects the COUCH_PARALLELISM env variable if the --parallelism backup command-line parameter is missing', function(done) {
79
- process.argv = ['node', 'test'];
80
- const program = parser.parseBackupArgs();
81
- assert.strictEqual(typeof program.parallelism, 'number');
82
- assert.strictEqual(program.parallelism, parseInt(process.env.COUCH_PARALLELISM, 10));
83
- done();
84
- });
85
-
86
- it('respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout backup command-line parameter is missing', function(done) {
87
- process.argv = ['node', 'test'];
88
- const program = parser.parseBackupArgs();
89
- assert.strictEqual(typeof program.requestTimeout, 'number');
90
- assert.strictEqual(program.requestTimeout, parseInt(process.env.COUCH_REQUEST_TIMEOUT, 10));
91
- done();
92
- });
93
-
94
- it('respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key backup command-line parameter is missing', function(done) {
95
- process.argv = ['node', 'test'];
96
- const program = parser.parseBackupArgs();
97
- assert.strictEqual(typeof program.iamApiKey, 'string');
98
- assert.strictEqual(program.iamApiKey, process.env.CLOUDANT_IAM_API_KEY);
99
- done();
100
- });
101
-
102
- it('respects the COUCH_LOG env variable if the --log backup command-line parameter is missing', function(done) {
103
- process.argv = ['node', 'test'];
104
- const program = parser.parseBackupArgs();
105
- assert.strictEqual(typeof program.log, 'string');
106
- assert.strictEqual(program.log, process.env.COUCH_LOG);
107
- done();
108
- });
109
-
110
- it('respects the COUCH_RESUME env variable if the --resume backup command-line parameter is missing', function(done) {
111
- process.argv = ['node', 'test'];
112
- const program = parser.parseBackupArgs();
113
- assert.strictEqual(typeof program.resume, 'boolean');
114
- assert.strictEqual(program.resume, true);
115
- done();
116
- });
117
-
118
- it('respects the COUCH_OUTPUT env variable if the --output backup command-line parameter is missing', function(done) {
119
- process.argv = ['node', 'test'];
120
- const program = parser.parseBackupArgs();
121
- assert.strictEqual(typeof program.output, 'string');
122
- assert.strictEqual(program.output, process.env.COUCH_OUTPUT);
123
- done();
124
- });
125
-
126
- it('respects the COUCH_MODE env variable if the --mode backup command-line parameter is missing', function(done) {
127
- process.argv = ['node', 'test'];
128
- const program = parser.parseBackupArgs();
129
- assert.strictEqual(typeof program.mode, 'string');
130
- assert.strictEqual(program.mode, process.env.COUCH_MODE);
131
- done();
132
- });
133
-
134
- it('respects the COUCH_QUIET env variable if the --quiet backup command-line parameter is missing', function(done) {
135
- process.argv = ['node', 'test'];
136
- const program = parser.parseBackupArgs();
137
- assert.strictEqual(typeof program.quiet, 'boolean');
138
- assert.strictEqual(program.quiet, true);
139
- done();
140
- });
141
-
142
- it('respects the backup --url command-line parameter', function(done) {
143
- const url = 'http://user:pass@myurl2.com';
144
- process.argv = ['node', 'test', '--url', url];
145
- const program = parser.parseBackupArgs();
146
- assert.strictEqual(typeof program.url, 'string');
147
- assert.strictEqual(program.url, url);
148
- done();
149
- });
150
-
151
- it('respects the backup --db command-line parameter', function(done) {
152
- const db = 'mydb2';
153
- process.argv = ['node', 'test', '--db', db];
154
- const program = parser.parseBackupArgs();
155
- assert.strictEqual(typeof program.db, 'string');
156
- assert.strictEqual(program.db, db);
157
- done();
158
- });
159
-
160
- it('respects the backup --buffer-size command-line parameter', function(done) {
161
- const bufferSize = 500;
162
- process.argv = ['node', 'test', '--buffer-size', bufferSize];
163
- const program = parser.parseBackupArgs();
164
- assert.strictEqual(typeof program.bufferSize, 'number');
165
- assert.strictEqual(program.bufferSize, bufferSize);
166
- done();
167
- });
168
-
169
- it('respects the backup --parallelism command-line parameter', function(done) {
170
- const parallelism = 10;
171
- process.argv = ['node', 'test', '--parallelism', parallelism];
172
- const program = parser.parseBackupArgs();
173
- assert.strictEqual(typeof program.parallelism, 'number');
174
- assert.strictEqual(program.parallelism, parallelism);
175
- done();
176
- });
177
-
178
- it('respects the backup --request-timeout command-line parameter', function(done) {
179
- const requestTimeout = 10000;
180
- process.argv = ['node', 'test', '--request-timeout', requestTimeout];
181
- const program = parser.parseBackupArgs();
182
- assert.strictEqual(typeof program.requestTimeout, 'number');
183
- assert.strictEqual(program.requestTimeout, requestTimeout);
184
- done();
185
- });
186
-
187
- it('respects the backup --iam-api-key command-line parameter', function(done) {
188
- const key = '123abc-789zyx_CBA987-XYZ321';
189
- process.argv = ['node', 'test', '--iam-api-key', key];
190
- const program = parser.parseBackupArgs();
191
- assert.strictEqual(typeof program.iamApiKey, 'string');
192
- assert.strictEqual(program.iamApiKey, key);
193
- done();
194
- });
195
-
196
- it('respects the backup --log command-line parameter', function(done) {
197
- const filename = 'my2.log';
198
- process.argv = ['node', 'test', '--log', filename];
199
- const program = parser.parseBackupArgs();
200
- assert.strictEqual(typeof program.log, 'string');
201
- assert.strictEqual(program.log, filename);
202
- done();
203
- });
204
-
205
- it('respects the backup --resume command-line parameter', function(done) {
206
- process.argv = ['node', 'test', '--resume'];
207
- const program = parser.parseBackupArgs();
208
- assert.strictEqual(typeof program.resume, 'boolean');
209
- assert.strictEqual(program.resume, true);
210
- done();
211
- });
212
-
213
- it('respects the backup --output command-line parameter', function(done) {
214
- const filename = 'myfile2.txt';
215
- process.argv = ['node', 'test', '--output', filename];
216
- const program = parser.parseBackupArgs();
217
- assert.strictEqual(typeof program.output, 'string');
218
- assert.strictEqual(program.output, filename);
219
- done();
220
- });
221
-
222
- it('respects the backup --mode full command-line parameter', function(done) {
223
- process.argv = ['node', 'test', '--mode', 'full'];
224
- const program = parser.parseBackupArgs();
225
- assert.strictEqual(typeof program.mode, 'string');
226
- assert.strictEqual(program.mode, 'full');
227
- done();
228
- });
229
-
230
- it('respects the backup --mode shallow command-line parameter', function(done) {
231
- process.argv = ['node', 'test', '--mode', 'shallow'];
232
- const program = parser.parseBackupArgs();
233
- assert.strictEqual(typeof program.mode, 'string');
234
- assert.strictEqual(program.mode, 'shallow');
235
- done();
236
- });
237
-
238
- it('respects the backup --quiet command-line parameter', function(done) {
239
- process.argv = ['node', 'test', '--quiet'];
240
- const program = parser.parseBackupArgs();
241
- assert.strictEqual(typeof program.quiet, 'boolean');
242
- assert.strictEqual(program.quiet, true);
243
- done();
244
- });
80
+ it('should perform a shallow backup with transient error', function(done) {
81
+ const couch = nock(dbUrl)
82
+ // batch 1
83
+ .post('/_all_docs', { limit: 3, include_docs: true })
84
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
85
+ // batch 2
86
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
87
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
88
+ // batch 3 - transient error
89
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
90
+ .reply(500, { error: 'Internal Server Error' })
91
+ // batch 3 - retry
92
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
93
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_3.json', 'utf8')))
94
+ // batch 4
95
+ .post('/_all_docs', { limit: 3, start_key: snipeKey, include_docs: true })
96
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_4.json', 'utf8')));
97
+
98
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
99
+ .on('error', function(err) {
100
+ assert.strictEqual(err.name, 'HTTPError');
101
+ })
102
+ .on('received', function(data) {
103
+ if (data.batch === 3) {
104
+ assert.strictEqual(data.length, 2); // smaller last batch
105
+ } else {
106
+ assert.strictEqual(data.length, 3);
107
+ }
108
+ })
109
+ .on('finished', function(data) {
110
+ assert.strictEqual(data.total, 11);
111
+ assert.ok(couch.isDone());
112
+ done();
113
+ });
245
114
  });
246
115
 
247
- describe('Restore command-line', function() {
248
- it('respects the COUCH_URL env variable if the --url restore command-line parameter is missing', function(done) {
249
- process.argv = ['node', 'test'];
250
- const program = parser.parseRestoreArgs();
251
- assert.strictEqual(typeof program.url, 'string');
252
- assert.strictEqual(program.url, process.env.COUCH_URL);
253
- done();
254
- });
255
-
256
- it('respects the COUCH_DATABASE env variable if the --db restore command-line parameter is missing', function(done) {
257
- process.argv = ['node', 'test'];
258
- const program = parser.parseRestoreArgs();
259
- assert.strictEqual(typeof program.db, 'string');
260
- assert.strictEqual(program.db, process.env.COUCH_DATABASE);
261
- done();
262
- });
263
-
264
- it('respects the COUCH_BUFFER_SIZE env variable if the --buffer-size restore command-line parameter is missing', function(done) {
265
- process.argv = ['node', 'test'];
266
- const program = parser.parseRestoreArgs();
267
- assert.strictEqual(typeof program.bufferSize, 'number');
268
- assert.strictEqual(program.bufferSize, parseInt(process.env.COUCH_BUFFER_SIZE, 10));
269
- done();
270
- });
271
-
272
- it('respects the COUCH_PARALLELISM env variable if the --parallelism restore command-line parameter is missing', function(done) {
273
- process.argv = ['node', 'test'];
274
- const program = parser.parseRestoreArgs();
275
- assert.strictEqual(typeof program.parallelism, 'number');
276
- assert.strictEqual(program.parallelism, parseInt(process.env.COUCH_PARALLELISM, 10));
277
- done();
278
- });
279
-
280
- it('respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout restore command-line parameter is missing', function(done) {
281
- process.argv = ['node', 'test'];
282
- const program = parser.parseRestoreArgs();
283
- assert.strictEqual(typeof program.requestTimeout, 'number');
284
- assert.strictEqual(program.requestTimeout, parseInt(process.env.COUCH_REQUEST_TIMEOUT, 10));
285
- done();
286
- });
287
-
288
- it('respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key restore command-line parameter is missing', function(done) {
289
- process.argv = ['node', 'test'];
290
- const program = parser.parseRestoreArgs();
291
- assert.strictEqual(typeof program.iamApiKey, 'string');
292
- assert.strictEqual(program.iamApiKey, process.env.CLOUDANT_IAM_API_KEY);
293
- done();
294
- });
295
-
296
- it('respects the COUCH_QUIET env variable if the --quiet restorer command-line parameter is missing', function(done) {
297
- process.argv = ['node', 'test'];
298
- const program = parser.parseBackupArgs();
299
- assert.strictEqual(typeof program.quiet, 'boolean');
300
- assert.strictEqual(program.quiet, true);
301
- done();
302
- });
303
-
304
- it('respects the restore --url command-line parameter', function(done) {
305
- const url = 'https://a:b@myurl3.com';
306
- process.argv = ['node', 'test', '--url', url];
307
- const program = parser.parseRestoreArgs();
308
- assert.strictEqual(typeof program.url, 'string');
309
- assert.strictEqual(program.url, url);
310
- done();
311
- });
312
-
313
- it('respects the restore --db command-line parameter', function(done) {
314
- const db = 'mydb3';
315
- process.argv = ['node', 'test', '--db', db];
316
- const program = parser.parseRestoreArgs();
317
- assert.strictEqual(typeof program.db, 'string');
318
- assert.strictEqual(program.db, db);
319
- done();
320
- });
321
-
322
- it('respects the restore --buffer-size command-line parameter', function(done) {
323
- const bufferSize = 250;
324
- process.argv = ['node', 'test', '--buffer-size', bufferSize];
325
- const program = parser.parseRestoreArgs();
326
- assert.strictEqual(typeof program.bufferSize, 'number');
327
- assert.strictEqual(program.bufferSize, bufferSize);
328
- done();
329
- });
330
-
331
- it('respects the restore --parallelism command-line parameter', function(done) {
332
- const parallelism = 5;
333
- process.argv = ['node', 'test', '--parallelism', parallelism];
334
- const program = parser.parseRestoreArgs();
335
- assert.strictEqual(typeof program.parallelism, 'number');
336
- assert.strictEqual(program.parallelism, parallelism);
337
- done();
338
- });
339
-
340
- it('respects the restore --request-timeout command-line parameter', function(done) {
341
- const requestTimeout = 10000;
342
- process.argv = ['node', 'test', '--request-timeout', requestTimeout];
343
- const program = parser.parseRestoreArgs();
344
- assert.strictEqual(typeof program.requestTimeout, 'number');
345
- assert.strictEqual(program.requestTimeout, requestTimeout);
346
- done();
347
- });
348
-
349
- it('respects the restore --iam-api-key command-line parameter', function(done) {
350
- const key = '123abc-789zyx_CBA987-XYZ321';
351
- process.argv = ['node', 'test', '--iam-api-key', key];
352
- const program = parser.parseRestoreArgs();
353
- assert.strictEqual(typeof program.iamApiKey, 'string');
354
- assert.strictEqual(program.iamApiKey, key);
355
- done();
356
- });
357
-
358
- it('respects the restore --quiet command-line parameter', function(done) {
359
- process.argv = ['node', 'test', '--quiet'];
360
- const program = parser.parseRestoreArgs();
361
- assert.strictEqual(typeof program.quiet, 'boolean');
362
- assert.strictEqual(program.quiet, true);
363
- done();
364
- });
116
+ it('should fail to perform a shallow backup on fatal error', function(done) {
117
+ const couch = nock(dbUrl)
118
+ // batch 1
119
+ .post('/_all_docs', { limit: 3, include_docs: true })
120
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
121
+ // batch 2
122
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
123
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
124
+ // batch 3 - fatal error
125
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
126
+ .reply(401, { error: 'Unauthorized' });
127
+
128
+ let errCount = 0;
129
+
130
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
131
+ .on('error', function(err) {
132
+ errCount++;
133
+ assert.strictEqual(err.name, 'Unauthorized');
134
+ })
135
+ .on('received', function(data) {
136
+ assert.strictEqual(data.length, 3);
137
+ })
138
+ .on('finished', function(data) {
139
+ assert.strictEqual(data.total, 6);
140
+ assert.ok(couch.isDone());
141
+ assert.strictEqual(errCount, 1);
142
+ done();
143
+ });
365
144
  });
366
145
  });
@@ -15,22 +15,49 @@
15
15
  /* global describe it */
16
16
  'use strict';
17
17
 
18
+ const fs = require('fs');
18
19
  const u = require('./citestutils.js');
19
20
 
20
- describe('Encryption tests', function() {
21
- // Note CLI only to use openssl command
22
- const p = { useApi: false, encryption: true };
23
-
24
- it('should backup and restore animaldb via an encrypted file', function(done) {
25
- // Allow up to 60 s for backup and restore of animaldb
26
- u.setTimeout(this, 60);
27
- const encryptedBackup = `./${this.fileName}`;
28
- u.testBackupAndRestoreViaFile(p, 'animaldb', encryptedBackup, this.dbName, function(err) {
21
+ describe('Event tests', function() {
22
+ it('should get a finished event when using stdout', function(done) {
23
+ u.setTimeout(this, 40);
24
+ // Use the API so we can get events
25
+ const params = { useApi: true };
26
+ const backup = u.testBackup(params, 'animaldb', process.stdout, function(err) {
29
27
  if (err) {
30
28
  done(err);
31
- } else {
32
- u.assertEncryptedFile(encryptedBackup, done);
33
29
  }
34
30
  });
31
+ backup.on('finished', function() {
32
+ try {
33
+ // Test will time out if the finished event is not emitted
34
+ done();
35
+ } catch (err) {
36
+ done(err);
37
+ }
38
+ });
39
+ });
40
+ it('should get a finished event when using file output', function(done) {
41
+ u.setTimeout(this, 40);
42
+ // Use the API so we can get events
43
+ const params = { useApi: true };
44
+ const actualBackup = `./${this.fileName}`;
45
+ // Create a file and backup to it
46
+ const output = fs.createWriteStream(actualBackup);
47
+ output.on('open', function() {
48
+ const backup = u.testBackup(params, 'animaldb', output, function(err) {
49
+ if (err) {
50
+ done(err);
51
+ }
52
+ });
53
+ backup.on('finished', function() {
54
+ try {
55
+ // Test will time out if the finished event is not emitted
56
+ done();
57
+ } catch (err) {
58
+ done(err);
59
+ }
60
+ });
61
+ });
35
62
  });
36
63
  });