@cloudant/couchbackup 2.9.8 → 2.9.9-SNAPSHOT.96

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 (438) 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/changesets-10.pb +2 -0
  4. package/.scannerwork/scanner-report/changesets-11.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-12.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-13.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-14.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-15.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-16.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-17.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-18.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-2.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-3.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-55.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-56.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-59.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-62.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  23. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  24. package/.scannerwork/scanner-report/changesets-8.pb +1 -0
  25. package/.scannerwork/scanner-report/changesets-9.pb +1 -0
  26. package/.scannerwork/scanner-report/component-1.pb +2 -1
  27. package/.scannerwork/scanner-report/component-10.pb +2 -0
  28. package/.scannerwork/scanner-report/component-11.pb +1 -0
  29. package/.scannerwork/scanner-report/component-12.pb +1 -0
  30. package/.scannerwork/scanner-report/component-13.pb +1 -0
  31. package/.scannerwork/scanner-report/component-14.pb +1 -0
  32. package/.scannerwork/scanner-report/component-15.pb +1 -0
  33. package/.scannerwork/scanner-report/component-16.pb +1 -0
  34. package/.scannerwork/scanner-report/component-17.pb +1 -0
  35. package/.scannerwork/scanner-report/component-18.pb +1 -0
  36. package/.scannerwork/scanner-report/component-2.pb +1 -0
  37. package/.scannerwork/scanner-report/component-23.pb +1 -1
  38. package/.scannerwork/scanner-report/component-24.pb +1 -1
  39. package/.scannerwork/scanner-report/component-28.pb +1 -1
  40. package/.scannerwork/scanner-report/component-29.pb +1 -1
  41. package/.scannerwork/scanner-report/component-3.pb +1 -0
  42. package/.scannerwork/scanner-report/component-30.pb +1 -1
  43. package/.scannerwork/scanner-report/component-31.pb +1 -1
  44. package/.scannerwork/scanner-report/component-32.pb +1 -1
  45. package/.scannerwork/scanner-report/component-33.pb +1 -1
  46. package/.scannerwork/scanner-report/component-34.pb +1 -1
  47. package/.scannerwork/scanner-report/component-35.pb +1 -1
  48. package/.scannerwork/scanner-report/component-36.pb +1 -1
  49. package/.scannerwork/scanner-report/component-37.pb +1 -1
  50. package/.scannerwork/scanner-report/component-38.pb +1 -1
  51. package/.scannerwork/scanner-report/component-39.pb +1 -0
  52. package/.scannerwork/scanner-report/component-5.pb +1 -1
  53. package/.scannerwork/scanner-report/component-51.pb +1 -1
  54. package/.scannerwork/scanner-report/component-52.pb +1 -1
  55. package/.scannerwork/scanner-report/component-53.pb +1 -1
  56. package/.scannerwork/scanner-report/component-54.pb +1 -1
  57. package/.scannerwork/scanner-report/component-55.pb +1 -1
  58. package/.scannerwork/scanner-report/component-56.pb +1 -0
  59. package/.scannerwork/scanner-report/component-57.pb +1 -1
  60. package/.scannerwork/scanner-report/component-58.pb +1 -1
  61. package/.scannerwork/scanner-report/component-59.pb +1 -1
  62. package/.scannerwork/scanner-report/component-6.pb +1 -1
  63. package/.scannerwork/scanner-report/component-60.pb +1 -0
  64. package/.scannerwork/scanner-report/component-61.pb +1 -1
  65. package/.scannerwork/scanner-report/component-62.pb +1 -0
  66. package/.scannerwork/scanner-report/component-63.pb +1 -0
  67. package/.scannerwork/scanner-report/component-64.pb +1 -0
  68. package/.scannerwork/scanner-report/component-65.pb +1 -1
  69. package/.scannerwork/scanner-report/component-69.pb +1 -1
  70. package/.scannerwork/scanner-report/component-7.pb +1 -1
  71. package/.scannerwork/scanner-report/component-70.pb +1 -0
  72. package/.scannerwork/scanner-report/component-8.pb +1 -0
  73. package/.scannerwork/scanner-report/component-9.pb +1 -0
  74. package/.scannerwork/scanner-report/coverages-11.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  102. package/.scannerwork/scanner-report/duplications-23.pb +2 -0
  103. package/.scannerwork/scanner-report/duplications-24.pb +2 -0
  104. package/.scannerwork/scanner-report/duplications-32.pb +0 -2
  105. package/.scannerwork/scanner-report/duplications-33.pb +2 -0
  106. package/.scannerwork/scanner-report/duplications-36.pb +0 -2
  107. package/.scannerwork/scanner-report/duplications-5.pb +0 -3
  108. package/.scannerwork/scanner-report/duplications-52.pb +3 -0
  109. package/.scannerwork/scanner-report/duplications-53.pb +3 -0
  110. package/.scannerwork/scanner-report/duplications-57.pb +2 -0
  111. package/.scannerwork/scanner-report/duplications-6.pb +2 -0
  112. package/.scannerwork/scanner-report/duplications-60.pb +3 -0
  113. package/.scannerwork/scanner-report/duplications-62.pb +0 -0
  114. package/.scannerwork/scanner-report/duplications-63.pb +0 -0
  115. package/.scannerwork/scanner-report/duplications-64.pb +0 -0
  116. package/.scannerwork/scanner-report/duplications-8.pb +0 -0
  117. package/.scannerwork/scanner-report/duplications-9.pb +2 -0
  118. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-70.pb +0 -0
  155. package/.scannerwork/scanner-report/metadata.pb +0 -0
  156. package/.scannerwork/scanner-report/source-11.txt +111 -0
  157. package/.scannerwork/scanner-report/source-13.txt +164 -0
  158. package/.scannerwork/scanner-report/source-16.txt +80 -0
  159. package/.scannerwork/scanner-report/source-18.txt +46 -0
  160. package/.scannerwork/scanner-report/source-2.txt +114 -0
  161. package/.scannerwork/scanner-report/source-23.txt +162 -64
  162. package/.scannerwork/scanner-report/source-24.txt +133 -583
  163. package/.scannerwork/scanner-report/source-28.txt +509 -142
  164. package/.scannerwork/scanner-report/source-29.txt +509 -366
  165. package/.scannerwork/scanner-report/source-3.txt +418 -0
  166. package/.scannerwork/scanner-report/source-30.txt +39 -19
  167. package/.scannerwork/scanner-report/source-31.txt +57 -80
  168. package/.scannerwork/scanner-report/source-32.txt +16 -127
  169. package/.scannerwork/scanner-report/source-33.txt +189 -120
  170. package/.scannerwork/scanner-report/source-34.txt +596 -39
  171. package/.scannerwork/scanner-report/source-35.txt +17 -129
  172. package/.scannerwork/scanner-report/source-36.txt +43 -200
  173. package/.scannerwork/scanner-report/source-37.txt +15 -93
  174. package/.scannerwork/scanner-report/source-38.txt +92 -167
  175. package/.scannerwork/scanner-report/source-39.txt +366 -0
  176. package/.scannerwork/scanner-report/source-5.txt +89 -229
  177. package/.scannerwork/scanner-report/source-51.txt +135 -59
  178. package/.scannerwork/scanner-report/source-52.txt +228 -95
  179. package/.scannerwork/scanner-report/source-53.txt +104 -31
  180. package/.scannerwork/scanner-report/source-54.txt +130 -147
  181. package/.scannerwork/scanner-report/source-55.txt +100 -509
  182. package/.scannerwork/scanner-report/source-57.txt +120 -52
  183. package/.scannerwork/scanner-report/source-58.txt +31 -40
  184. package/.scannerwork/scanner-report/source-59.txt +36 -509
  185. package/.scannerwork/scanner-report/source-6.txt +71 -47
  186. package/.scannerwork/scanner-report/source-61.txt +293 -509
  187. package/.scannerwork/scanner-report/source-62.txt +142 -0
  188. package/.scannerwork/scanner-report/source-64.txt +68 -0
  189. package/.scannerwork/scanner-report/source-65.txt +509 -190
  190. package/.scannerwork/scanner-report/source-69.txt +509 -418
  191. package/.scannerwork/scanner-report/source-7.txt +38 -31
  192. package/.scannerwork/scanner-report/source-70.txt +167 -0
  193. package/.scannerwork/scanner-report/symbols-11.pb +59 -0
  194. package/.scannerwork/scanner-report/symbols-13.pb +126 -0
  195. package/.scannerwork/scanner-report/symbols-16.pb +46 -0
  196. package/.scannerwork/scanner-report/symbols-18.pb +20 -0
  197. package/.scannerwork/scanner-report/symbols-2.pb +28 -0
  198. package/.scannerwork/scanner-report/symbols-23.pb +180 -60
  199. package/.scannerwork/scanner-report/symbols-24.pb +143 -1244
  200. package/.scannerwork/scanner-report/symbols-30.pb +19 -14
  201. package/.scannerwork/scanner-report/symbols-31.pb +29 -68
  202. package/.scannerwork/scanner-report/symbols-32.pb +10 -102
  203. package/.scannerwork/scanner-report/symbols-33.pb +410 -104
  204. package/.scannerwork/scanner-report/symbols-34.pb +1251 -33
  205. package/.scannerwork/scanner-report/symbols-35.pb +17 -85
  206. package/.scannerwork/scanner-report/symbols-36.pb +35 -417
  207. package/.scannerwork/scanner-report/symbols-37.pb +11 -28
  208. package/.scannerwork/scanner-report/symbols-38.pb +60 -0
  209. package/.scannerwork/scanner-report/symbols-5.pb +41 -393
  210. package/.scannerwork/scanner-report/symbols-51.pb +110 -44
  211. package/.scannerwork/scanner-report/symbols-52.pb +393 -58
  212. package/.scannerwork/scanner-report/symbols-53.pb +76 -19
  213. package/.scannerwork/scanner-report/symbols-54.pb +80 -121
  214. package/.scannerwork/scanner-report/symbols-55.pb +69 -0
  215. package/.scannerwork/scanner-report/symbols-57.pb +102 -30
  216. package/.scannerwork/scanner-report/symbols-58.pb +27 -19
  217. package/.scannerwork/scanner-report/symbols-59.pb +14 -0
  218. package/.scannerwork/scanner-report/symbols-6.pb +43 -44
  219. package/.scannerwork/scanner-report/symbols-64.pb +45 -0
  220. package/.scannerwork/scanner-report/symbols-7.pb +15 -27
  221. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +133 -0
  222. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +213 -0
  223. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +95 -0
  224. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +64 -0
  225. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +138 -0
  226. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +186 -71
  227. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +142 -815
  228. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +3736 -123
  229. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +3504 -385
  230. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +648 -0
  231. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +63 -35
  232. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +73 -75
  233. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +14 -191
  234. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +270 -162
  235. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +849 -57
  236. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +27 -155
  237. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +58 -294
  238. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +24 -103
  239. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +99 -937
  240. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +630 -0
  241. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +85 -298
  242. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +190 -62
  243. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +292 -96
  244. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +127 -33
  245. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +151 -173
  246. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +94 -3735
  247. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +200 -76
  248. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +45 -59
  249. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +43 -3736
  250. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +56 -76
  251. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +398 -3487
  252. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +134 -0
  253. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +110 -0
  254. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +3725 -202
  255. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +3544 -445
  256. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +24 -38
  257. package/.scannerwork/scanner-report/syntax-highlightings-70.pb +949 -0
  258. package/package.json +1 -1
  259. package/test-14-results.xml +158 -158
  260. package/test-16-results.xml +139 -139
  261. package/test-18-results.xml +155 -155
  262. package/test-19-results.xml +151 -151
  263. package/test-iam-18-results.xml +50 -50
  264. package/.scannerwork/scanner-report/changesets-19.pb +0 -1
  265. package/.scannerwork/scanner-report/changesets-20.pb +0 -1
  266. package/.scannerwork/scanner-report/changesets-21.pb +0 -1
  267. package/.scannerwork/scanner-report/changesets-22.pb +0 -1
  268. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  269. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  270. package/.scannerwork/scanner-report/changesets-27.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-28.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-29.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-4.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-41.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-42.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-43.pb +0 -1
  277. package/.scannerwork/scanner-report/changesets-44.pb +0 -1
  278. package/.scannerwork/scanner-report/changesets-45.pb +0 -1
  279. package/.scannerwork/scanner-report/changesets-46.pb +0 -1
  280. package/.scannerwork/scanner-report/changesets-47.pb +0 -1
  281. package/.scannerwork/scanner-report/changesets-48.pb +0 -1
  282. package/.scannerwork/scanner-report/changesets-49.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-65.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-66.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  287. package/.scannerwork/scanner-report/component-19.pb +0 -1
  288. package/.scannerwork/scanner-report/component-20.pb +0 -1
  289. package/.scannerwork/scanner-report/component-21.pb +0 -1
  290. package/.scannerwork/scanner-report/component-22.pb +0 -1
  291. package/.scannerwork/scanner-report/component-25.pb +0 -1
  292. package/.scannerwork/scanner-report/component-26.pb +0 -1
  293. package/.scannerwork/scanner-report/component-27.pb +0 -1
  294. package/.scannerwork/scanner-report/component-4.pb +0 -1
  295. package/.scannerwork/scanner-report/component-40.pb +0 -1
  296. package/.scannerwork/scanner-report/component-41.pb +0 -1
  297. package/.scannerwork/scanner-report/component-42.pb +0 -1
  298. package/.scannerwork/scanner-report/component-43.pb +0 -1
  299. package/.scannerwork/scanner-report/component-44.pb +0 -1
  300. package/.scannerwork/scanner-report/component-45.pb +0 -1
  301. package/.scannerwork/scanner-report/component-46.pb +0 -1
  302. package/.scannerwork/scanner-report/component-47.pb +0 -1
  303. package/.scannerwork/scanner-report/component-48.pb +0 -1
  304. package/.scannerwork/scanner-report/component-49.pb +0 -1
  305. package/.scannerwork/scanner-report/component-50.pb +0 -1
  306. package/.scannerwork/scanner-report/component-66.pb +0 -1
  307. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  308. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  309. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  310. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  311. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  312. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  316. package/.scannerwork/scanner-report/duplications-19.pb +0 -3
  317. package/.scannerwork/scanner-report/duplications-22.pb +0 -3
  318. package/.scannerwork/scanner-report/duplications-43.pb +0 -2
  319. package/.scannerwork/scanner-report/duplications-45.pb +0 -2
  320. package/.scannerwork/scanner-report/duplications-65.pb +0 -2
  321. package/.scannerwork/scanner-report/duplications-66.pb +0 -2
  322. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  323. package/.scannerwork/scanner-report/measures-21.pb +0 -15
  324. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  325. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  326. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  328. package/.scannerwork/scanner-report/measures-42.pb +0 -15
  329. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  330. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  331. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  332. package/.scannerwork/scanner-report/source-20.txt +0 -35
  333. package/.scannerwork/scanner-report/source-21.txt +0 -293
  334. package/.scannerwork/scanner-report/source-22.txt +0 -119
  335. package/.scannerwork/scanner-report/source-27.txt +0 -36
  336. package/.scannerwork/scanner-report/source-4.txt +0 -34
  337. package/.scannerwork/scanner-report/source-40.txt +0 -509
  338. package/.scannerwork/scanner-report/source-42.txt +0 -104
  339. package/.scannerwork/scanner-report/source-43.txt +0 -92
  340. package/.scannerwork/scanner-report/source-46.txt +0 -54
  341. package/.scannerwork/scanner-report/source-66.txt +0 -175
  342. package/.scannerwork/scanner-report/symbols-20.pb +0 -17
  343. package/.scannerwork/scanner-report/symbols-22.pb +0 -77
  344. package/.scannerwork/scanner-report/symbols-27.pb +0 -11
  345. package/.scannerwork/scanner-report/symbols-4.pb +0 -10
  346. package/.scannerwork/scanner-report/symbols-42.pb +0 -42
  347. package/.scannerwork/scanner-report/symbols-43.pb +0 -44
  348. package/.scannerwork/scanner-report/symbols-46.pb +0 -15
  349. package/.scannerwork/scanner-report/symbols-65.pb +0 -180
  350. package/.scannerwork/scanner-report/symbols-66.pb +0 -153
  351. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +0 -63
  352. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +0 -659
  353. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +0 -158
  354. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +0 -59
  355. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -50
  356. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +0 -3749
  357. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +0 -116
  358. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +0 -90
  359. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +0 -54
  360. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +0 -214
  361. /package/.scannerwork/scanner-report/{coverages-49.pb → coverages-10.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{coverages-44.pb → coverages-12.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{coverages-41.pb → coverages-14.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{coverages-47.pb → coverages-15.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{coverages-48.pb → coverages-17.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{coverages-69.pb → coverages-3.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{coverages-29.pb → coverages-39.pb} +0 -0
  368. /package/.scannerwork/scanner-report/{coverages-25.pb → coverages-56.pb} +0 -0
  369. /package/.scannerwork/scanner-report/{coverages-19.pb → coverages-60.pb} +0 -0
  370. /package/.scannerwork/scanner-report/{coverages-21.pb → coverages-61.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{coverages-28.pb → coverages-62.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{coverages-26.pb → coverages-63.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{coverages-50.pb → coverages-8.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{coverages-45.pb → coverages-9.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{duplications-20.pb → duplications-10.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-11.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{duplications-27.pb → duplications-12.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{duplications-28.pb → duplications-13.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{duplications-29.pb → duplications-14.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{duplications-4.pb → duplications-15.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{duplications-41.pb → duplications-16.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{duplications-42.pb → duplications-17.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{duplications-44.pb → duplications-18.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{duplications-46.pb → duplications-2.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{duplications-47.pb → duplications-3.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{duplications-48.pb → duplications-38.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-39.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-55.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{duplications-69.pb → duplications-59.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{duplications-21.pb → duplications-61.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{issues-29.pb → issues-39.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{issues-5.pb → issues-52.pb} +0 -0
  393. /package/.scannerwork/scanner-report/{issues-7.pb → issues-58.pb} +0 -0
  394. /package/.scannerwork/scanner-report/{issues-28.pb → issues-62.pb} +0 -0
  395. /package/.scannerwork/scanner-report/{measures-49.pb → measures-10.pb} +0 -0
  396. /package/.scannerwork/scanner-report/{measures-44.pb → measures-12.pb} +0 -0
  397. /package/.scannerwork/scanner-report/{measures-41.pb → measures-14.pb} +0 -0
  398. /package/.scannerwork/scanner-report/{measures-47.pb → measures-15.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{measures-48.pb → measures-17.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{measures-25.pb → measures-56.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{measures-19.pb → measures-60.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{measures-26.pb → measures-63.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{measures-50.pb → measures-8.pb} +0 -0
  404. /package/.scannerwork/scanner-report/{measures-45.pb → measures-9.pb} +0 -0
  405. /package/.scannerwork/scanner-report/{source-49.txt → source-10.txt} +0 -0
  406. /package/.scannerwork/scanner-report/{source-44.txt → source-12.txt} +0 -0
  407. /package/.scannerwork/scanner-report/{source-41.txt → source-14.txt} +0 -0
  408. /package/.scannerwork/scanner-report/{source-47.txt → source-15.txt} +0 -0
  409. /package/.scannerwork/scanner-report/{source-48.txt → source-17.txt} +0 -0
  410. /package/.scannerwork/scanner-report/{source-25.txt → source-56.txt} +0 -0
  411. /package/.scannerwork/scanner-report/{source-19.txt → source-60.txt} +0 -0
  412. /package/.scannerwork/scanner-report/{source-26.txt → source-63.txt} +0 -0
  413. /package/.scannerwork/scanner-report/{source-50.txt → source-8.txt} +0 -0
  414. /package/.scannerwork/scanner-report/{source-45.txt → source-9.txt} +0 -0
  415. /package/.scannerwork/scanner-report/{symbols-49.pb → symbols-10.pb} +0 -0
  416. /package/.scannerwork/scanner-report/{symbols-44.pb → symbols-12.pb} +0 -0
  417. /package/.scannerwork/scanner-report/{symbols-41.pb → symbols-14.pb} +0 -0
  418. /package/.scannerwork/scanner-report/{symbols-47.pb → symbols-15.pb} +0 -0
  419. /package/.scannerwork/scanner-report/{symbols-48.pb → symbols-17.pb} +0 -0
  420. /package/.scannerwork/scanner-report/{symbols-69.pb → symbols-3.pb} +0 -0
  421. /package/.scannerwork/scanner-report/{symbols-29.pb → symbols-39.pb} +0 -0
  422. /package/.scannerwork/scanner-report/{symbols-25.pb → symbols-56.pb} +0 -0
  423. /package/.scannerwork/scanner-report/{symbols-19.pb → symbols-60.pb} +0 -0
  424. /package/.scannerwork/scanner-report/{symbols-21.pb → symbols-61.pb} +0 -0
  425. /package/.scannerwork/scanner-report/{symbols-28.pb → symbols-62.pb} +0 -0
  426. /package/.scannerwork/scanner-report/{symbols-26.pb → symbols-63.pb} +0 -0
  427. /package/.scannerwork/scanner-report/{symbols-50.pb → symbols-8.pb} +0 -0
  428. /package/.scannerwork/scanner-report/{symbols-45.pb → symbols-9.pb} +0 -0
  429. /package/.scannerwork/scanner-report/{syntax-highlightings-49.pb → syntax-highlightings-10.pb} +0 -0
  430. /package/.scannerwork/scanner-report/{syntax-highlightings-44.pb → syntax-highlightings-12.pb} +0 -0
  431. /package/.scannerwork/scanner-report/{syntax-highlightings-41.pb → syntax-highlightings-14.pb} +0 -0
  432. /package/.scannerwork/scanner-report/{syntax-highlightings-47.pb → syntax-highlightings-15.pb} +0 -0
  433. /package/.scannerwork/scanner-report/{syntax-highlightings-48.pb → syntax-highlightings-17.pb} +0 -0
  434. /package/.scannerwork/scanner-report/{syntax-highlightings-25.pb → syntax-highlightings-56.pb} +0 -0
  435. /package/.scannerwork/scanner-report/{syntax-highlightings-19.pb → syntax-highlightings-60.pb} +0 -0
  436. /package/.scannerwork/scanner-report/{syntax-highlightings-26.pb → syntax-highlightings-63.pb} +0 -0
  437. /package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-8.pb} +0 -0
  438. /package/.scannerwork/scanner-report/{syntax-highlightings-45.pb → syntax-highlightings-9.pb} +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2022 IBM Corp. All rights reserved.
1
+ // Copyright © 2017 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,134 +12,23 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe it beforeEach */
15
+ /* global describe it */
16
16
  'use strict';
17
17
 
18
18
  const assert = require('assert');
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();
45
- });
46
-
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
- });
78
- });
79
-
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
- });
114
- });
115
-
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
- });
19
+ const logfilesummary = require('../includes/logfilesummary.js');
20
+
21
+ describe('#unit Fetching summary from the log file', function() {
22
+ it('should fetch a summary correctly', function(done) {
23
+ logfilesummary('./test/fixtures/test.log', function(err, data) {
24
+ assert.ok(!err);
25
+ assert.ok(data);
26
+ assert.strictEqual(data.changesComplete, true);
27
+ assert.strictEqual(typeof data.batches, 'object');
28
+ assert.strictEqual(Object.keys(data.batches).length, 2);
29
+ assert.deepStrictEqual(data.batches['1'], true);
30
+ assert.deepStrictEqual(data.batches['4'], true);
31
+ done();
32
+ });
144
33
  });
145
34
  });
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2018 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.
@@ -16,141 +16,210 @@
16
16
  'use strict';
17
17
 
18
18
  const assert = require('assert');
19
+ const backup = require('../app.js').backup;
20
+ const fs = require('fs');
19
21
  const nock = require('nock');
20
- const request = require('../includes/request.js');
21
- const changes = require('../includes/spoolchanges.js');
22
22
 
23
- const url = 'http://localhost:7777';
24
- const dbName = 'fakenockdb';
25
- const longTestTimeout = 3000;
23
+ const goodUrl = 'http://localhost:5984/db';
24
+ // The real validateArgs function of app.js isn't
25
+ // exported - so we call the exported backup method
26
+ // instead. We don't get as far as a real backup when
27
+ // testing error cases. For success cases we nock the
28
+ // goodUrl and
29
+ const validateArgs = function(url, opts, callback) {
30
+ const nullStream = fs.createWriteStream('/dev/null');
31
+ let cb = callback;
32
+ if (url === goodUrl) {
33
+ // Nock the goodUrl
34
+ nock(goodUrl).head('').reply(404, { error: 'not_found', reason: 'missing' });
35
+ // replace the callback to handle the nock response
36
+ // to avoid attempting a real backup
37
+ cb = function(err) {
38
+ nullStream.end();
39
+ if (err.name === 'DatabaseNotFound') {
40
+ // This is what we expect if we reached the backup
41
+ // This is success for valid args cases.
42
+ err = null;
43
+ }
44
+ callback(err);
45
+ };
46
+ }
47
+ backup(url, nullStream, opts, cb);
48
+ return true;
49
+ };
26
50
 
27
- const db = request.client(`${url}/${dbName}`, { parallelism: 1 });
51
+ const stderrWriteFun = process.stderr.write;
52
+ let capturedStderr;
28
53
 
29
- const seqSuffix = Buffer.alloc(124, 'abc123').toString('base64');
30
- function provideChanges(batchSize, totalChanges, fullResponse = false) {
31
- let pending = totalChanges;
32
- const sparseResultsArray = Array(batchSize).fill({
33
- seq: null,
34
- id: 'doc',
35
- changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
36
- });
37
- nock(url)
38
- .post(`/${dbName}/_changes`)
39
- .query(true)
40
- .times(totalChanges / batchSize + (totalChanges % batchSize > 0 ? 1 : 0))
41
- .reply(200, (uri, requestBody) => {
42
- pending -= batchSize;
43
- const lastSeq = (totalChanges - pending);
44
- const seq = lastSeq - batchSize;
45
- return {
46
- results: fullResponse
47
- ? Array.from(Array(batchSize), (_, i) => {
48
- return {
49
- seq: `${seq + i}-${seqSuffix}`,
50
- id: `doc${seq + i}`,
51
- changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
52
- };
53
- })
54
- : sparseResultsArray,
55
- pending: pending,
56
- last_seq: `${lastSeq}-abc`
57
- };
58
- });
54
+ function captureStderr() {
55
+ process.stderr.write = function(string, encoding, fd) {
56
+ capturedStderr += string;
57
+ };
59
58
  }
60
59
 
61
- describe('#unit Check spool changes', function() {
62
- it('should terminate on request error', function(done) {
63
- nock(url)
64
- .post(`/${dbName}/_changes`)
65
- .query(true)
66
- .times(3)
67
- .replyWithError({ code: 'ECONNRESET', message: 'socket hang up' });
60
+ function releaseStderr() {
61
+ process.stderr.write = stderrWriteFun;
62
+ capturedStderr = null;
63
+ }
68
64
 
69
- changes(db, '/dev/null', 500, null, function(err) {
70
- assert.strictEqual(err.name, 'SpoolChangesError');
71
- assert.strictEqual(err.message, `Failed changes request - socket hang up: post ${url}/${dbName}/_changes`);
72
- assert.ok(nock.isDone());
65
+ function assertErrorMessage(msg, done) {
66
+ return function(err, data) {
67
+ try {
68
+ assert(err.message, 'There should be an error message');
69
+ assert(err.message.indexOf(msg) >= 0);
70
+ assert(data === null || data === undefined, 'There should only be an error.');
73
71
  done();
74
- });
75
- }).timeout(longTestTimeout);
76
-
77
- it('should terminate on bad HTTP status code response', function(done) {
78
- nock(url)
79
- .post(`/${dbName}/_changes`)
80
- .query(true)
81
- .times(3)
82
- .reply(500, function(uri, requestBody) {
83
- this.req.response.statusMessage = 'Internal Server Error';
84
- return { error: 'foo', reason: 'bar' };
85
- });
72
+ } catch (e) {
73
+ done(e);
74
+ }
75
+ };
76
+ }
86
77
 
87
- changes(db, '/dev/null', 500, null, function(err) {
88
- assert.strictEqual(err.name, 'HTTPFatalError');
89
- assert.strictEqual(err.message, `500 Internal Server Error: post ${url}/${dbName}/_changes - Error: foo, Reason: bar`);
90
- assert.ok(nock.isDone());
78
+ function assertNoError(done) {
79
+ return function(err, data) {
80
+ try {
81
+ assert(err === null, 'There should be no error message.');
91
82
  done();
92
- });
93
- }).timeout(longTestTimeout);
94
-
95
- it('should keep collecting changes', function(done) {
96
- // This test validates that spooling will correctly
97
- // continue across multiple requests
98
- // (4 batches of 100000 to be precise).
99
- // This test might take up to 10 seconds
100
- this.timeout(10 * 1000);
83
+ } catch (e) {
84
+ done(e);
85
+ }
86
+ };
87
+ }
101
88
 
102
- // Use full changes for this test
103
- provideChanges(100000, 400000, true);
104
- changes(db, '/dev/null', 500, null, function(err) {
105
- assert.ok(!err);
106
- assert.ok(nock.isDone());
107
- done();
108
- });
89
+ describe('#unit Validate arguments', function() {
90
+ it('returns error for invalid URL type', function(done) {
91
+ validateArgs(true, {}, assertErrorMessage('Invalid URL, must be type string', done));
109
92
  });
110
-
111
- it('should keep collecting sparse changes', function(done) {
112
- // This test checks that making thousands of requests doesn't
113
- // make anything bad happen.
114
- // This test might take up to 25 seconds
115
- this.timeout(25 * 1000);
116
- // Use sparse changes for this test and a batch size of 1
117
- provideChanges(1, 2500);
118
- changes(db, '/dev/null', 500, null, function(err) {
119
- assert.ok(!err);
120
- assert.ok(nock.isDone());
93
+ it('returns no error for valid URL type', function(done) {
94
+ validateArgs(goodUrl, {}, assertNoError(done));
95
+ });
96
+ it('returns error for invalid (no host) URL', function(done) {
97
+ validateArgs('http://', {}, assertErrorMessage('Invalid URL', done));
98
+ });
99
+ it('returns error for invalid (no protocol) URL', function(done) {
100
+ validateArgs('invalid', {}, assertErrorMessage('Invalid URL', done));
101
+ });
102
+ it('returns error for invalid (wrong protocol) URL', function(done) {
103
+ validateArgs('ftp://invalid.example.com', {}, assertErrorMessage('Invalid URL protocol.', done));
104
+ });
105
+ it('returns error for invalid (no path) URL', function(done) {
106
+ validateArgs('https://invalid.example.com', {}, assertErrorMessage('Invalid URL, missing path element (no database).', done));
107
+ });
108
+ it('returns error for invalid (no protocol, no host) URL', function(done) {
109
+ validateArgs('invalid', {}, assertErrorMessage('Invalid URL', done));
110
+ });
111
+ it('returns error for invalid buffer size type', function(done) {
112
+ validateArgs(goodUrl, { bufferSize: '123' }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
113
+ });
114
+ it('returns error for zero buffer size', function(done) {
115
+ validateArgs(goodUrl, { bufferSize: 0 }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
116
+ });
117
+ it('returns error for float buffer size', function(done) {
118
+ validateArgs(goodUrl, { bufferSize: 1.23 }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
119
+ });
120
+ it('returns no error for valid buffer size type', function(done) {
121
+ validateArgs(goodUrl, { bufferSize: 123 }, assertNoError(done));
122
+ });
123
+ it('returns error for invalid log type', function(done) {
124
+ validateArgs(goodUrl, { log: true }, assertErrorMessage('Invalid log option, must be type string', done));
125
+ });
126
+ it('returns no error for valid log type', function(done) {
127
+ validateArgs(goodUrl, { log: 'log.txt' }, assertNoError(done));
128
+ });
129
+ it('returns error for invalid mode type', function(done) {
130
+ validateArgs(goodUrl, { mode: true }, assertErrorMessage('Invalid mode option, must be either "full" or "shallow"', done));
131
+ });
132
+ it('returns error for invalid mode string', function(done) {
133
+ validateArgs(goodUrl, { mode: 'foobar' }, assertErrorMessage('Invalid mode option, must be either "full" or "shallow"', done));
134
+ });
135
+ it('returns no error for valid mode type', function(done) {
136
+ validateArgs(goodUrl, { mode: 'full' }, assertNoError(done));
137
+ });
138
+ it('returns error for invalid output type', function(done) {
139
+ validateArgs(goodUrl, { output: true }, assertErrorMessage('Invalid output option, must be type string', done));
140
+ });
141
+ it('returns no error for valid output type', function(done) {
142
+ validateArgs(goodUrl, { output: 'output.txt' }, assertNoError(done));
143
+ });
144
+ it('returns error for invalid parallelism type', function(done) {
145
+ validateArgs(goodUrl, { parallelism: '123' }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
146
+ });
147
+ it('returns error for zero parallelism', function(done) {
148
+ validateArgs(goodUrl, { parallelism: 0 }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
149
+ });
150
+ it('returns error for float parallelism', function(done) {
151
+ validateArgs(goodUrl, { parallelism: 1.23 }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
152
+ });
153
+ it('returns no error for valid parallelism type', function(done) {
154
+ validateArgs(goodUrl, { parallelism: 123 }, assertNoError(done));
155
+ });
156
+ it('returns error for invalid request timeout type', function(done) {
157
+ validateArgs(goodUrl, { requestTimeout: '123' }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
158
+ });
159
+ it('returns error for zero request timeout', function(done) {
160
+ validateArgs(goodUrl, { requestTimeout: 0 }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
161
+ });
162
+ it('returns error for float request timout', function(done) {
163
+ validateArgs(goodUrl, { requestTimeout: 1.23 }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
164
+ });
165
+ it('returns no error for valid request timeout type', function(done) {
166
+ validateArgs(goodUrl, { requestTimeout: 123 }, assertNoError(done));
167
+ });
168
+ it('returns error for invalid resume type', function(done) {
169
+ validateArgs(goodUrl, { resume: 'true' }, assertErrorMessage('Invalid resume option, must be type boolean', done));
170
+ });
171
+ it('returns no error for valid resume type', function(done) {
172
+ validateArgs(goodUrl, { resume: false }, assertNoError(done));
173
+ });
174
+ it('returns error for invalid key type', function(done) {
175
+ validateArgs(goodUrl, { iamApiKey: true }, assertErrorMessage('Invalid iamApiKey option, must be type string', done));
176
+ });
177
+ it('returns error for key and URL credentials supplied', function(done) {
178
+ validateArgs('https://a:b@example.com/db', { iamApiKey: 'abc123' }, assertErrorMessage('URL user information must not be supplied when using IAM API key.', done));
179
+ });
180
+ it('warns for log arg in shallow mode', function(done) {
181
+ captureStderr();
182
+ try {
183
+ validateArgs(goodUrl, { mode: 'shallow', log: 'test' }, function(err, data) {
184
+ assert.ok(err);
185
+ assert.ok(!data);
186
+ assert(capturedStderr.indexOf('The options "log" and "resume" are invalid when using shallow mode.') > -1, 'Log warning message was not present');
187
+ });
121
188
  done();
122
- });
189
+ } catch (e) {
190
+ done(e);
191
+ } finally {
192
+ releaseStderr();
193
+ }
123
194
  });
124
- });
125
-
126
- describe('Longer spool changes checks', function() {
127
- it('#slow should keep collecting changes (25M)', function(done) {
128
- // This test might take up to 5 minutes
129
- this.timeout(5 * 60 * 1000);
130
- // Note changes spooling uses a constant batch size, we are setting
131
- // a test value here and setting the buffer to match
132
- const batch = 100000;
133
- // Use sparse changes for this test
134
- provideChanges(batch, 25000000);
135
- changes(db, '/dev/null', batch, null, function(err) {
136
- assert.ok(!err);
137
- assert.ok(nock.isDone());
195
+ it('warns for resume arg in shallow mode', function(done) {
196
+ captureStderr();
197
+ try {
198
+ validateArgs(goodUrl, { mode: 'shallow', log: 'test', resume: true }, function(err, data) {
199
+ assert.ok(err);
200
+ assert.ok(!data);
201
+ assert(capturedStderr.indexOf('The options "log" and "resume" are invalid when using shallow mode.') > -1, 'Log warning message was not present');
202
+ });
138
203
  done();
139
- });
204
+ } catch (e) {
205
+ done(e);
206
+ } finally {
207
+ releaseStderr();
208
+ }
140
209
  });
141
-
142
- it('#slower should keep collecting changes (500M)', function(done) {
143
- // This test might take up to 90 minutes
144
- this.timeout(90 * 60 * 1000);
145
- // Note changes spooling uses a constant batch size, we are setting
146
- // a test value here and setting the buffer to match
147
- const batch = 1000000;
148
- // Use full changes for this test to exercise load
149
- provideChanges(batch, 500000000, true);
150
- changes(db, '/dev/null', batch, null, function(err) {
151
- assert.ok(!err);
152
- assert.ok(nock.isDone());
210
+ it('warns for parallism arg in shallow mode', function(done) {
211
+ captureStderr();
212
+ try {
213
+ validateArgs(goodUrl, { mode: 'shallow', parallelsim: 10 }, function(err, data) {
214
+ assert.ok(err);
215
+ assert.ok(!data);
216
+ assert(capturedStderr.indexOf('The option "parallelism" has no effect when using shallow mode.') > -1, 'Log warning message was not present');
217
+ });
153
218
  done();
154
- });
219
+ } catch (e) {
220
+ done(e);
221
+ } finally {
222
+ releaseStderr();
223
+ }
155
224
  });
156
225
  });