@cloudant/couchbackup 2.9.16-SNAPSHOT.183 → 2.9.16

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 (392) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-cache2.pb +0 -0
  3. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  4. package/.scannerwork/scanner-report/analysis.log +1 -1
  5. package/.scannerwork/scanner-report/changesets-2.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-34.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-35.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-36.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-37.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-4.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-43.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-44.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-45.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-5.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-66.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-8.pb +1 -0
  20. package/.scannerwork/scanner-report/component-1.pb +2 -2
  21. package/.scannerwork/scanner-report/component-10.pb +1 -1
  22. package/.scannerwork/scanner-report/component-12.pb +1 -1
  23. package/.scannerwork/scanner-report/component-13.pb +1 -1
  24. package/.scannerwork/scanner-report/component-14.pb +1 -1
  25. package/.scannerwork/scanner-report/component-15.pb +1 -1
  26. package/.scannerwork/scanner-report/component-16.pb +1 -1
  27. package/.scannerwork/scanner-report/component-17.pb +1 -1
  28. package/.scannerwork/scanner-report/component-18.pb +1 -1
  29. package/.scannerwork/scanner-report/component-19.pb +1 -1
  30. package/.scannerwork/scanner-report/component-2.pb +1 -0
  31. package/.scannerwork/scanner-report/component-20.pb +1 -1
  32. package/.scannerwork/scanner-report/component-21.pb +1 -1
  33. package/.scannerwork/scanner-report/component-22.pb +1 -1
  34. package/.scannerwork/scanner-report/component-3.pb +1 -0
  35. package/.scannerwork/scanner-report/component-34.pb +1 -0
  36. package/.scannerwork/scanner-report/component-35.pb +1 -0
  37. package/.scannerwork/scanner-report/component-36.pb +1 -0
  38. package/.scannerwork/scanner-report/component-37.pb +1 -0
  39. package/.scannerwork/scanner-report/component-38.pb +1 -1
  40. package/.scannerwork/scanner-report/component-39.pb +1 -1
  41. package/.scannerwork/scanner-report/component-4.pb +1 -1
  42. package/.scannerwork/scanner-report/component-40.pb +1 -1
  43. package/.scannerwork/scanner-report/component-41.pb +1 -1
  44. package/.scannerwork/scanner-report/component-42.pb +1 -1
  45. package/.scannerwork/scanner-report/component-43.pb +1 -0
  46. package/.scannerwork/scanner-report/component-44.pb +1 -1
  47. package/.scannerwork/scanner-report/component-45.pb +1 -0
  48. package/.scannerwork/scanner-report/component-46.pb +1 -1
  49. package/.scannerwork/scanner-report/component-47.pb +1 -1
  50. package/.scannerwork/scanner-report/component-48.pb +1 -1
  51. package/.scannerwork/scanner-report/component-49.pb +1 -1
  52. package/.scannerwork/scanner-report/component-5.pb +1 -0
  53. package/.scannerwork/scanner-report/component-50.pb +1 -1
  54. package/.scannerwork/scanner-report/component-51.pb +1 -1
  55. package/.scannerwork/scanner-report/component-52.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-6.pb +1 -1
  59. package/.scannerwork/scanner-report/component-60.pb +1 -1
  60. package/.scannerwork/scanner-report/component-61.pb +1 -0
  61. package/.scannerwork/scanner-report/component-64.pb +1 -1
  62. package/.scannerwork/scanner-report/component-66.pb +1 -0
  63. package/.scannerwork/scanner-report/component-68.pb +1 -1
  64. package/.scannerwork/scanner-report/component-7.pb +1 -1
  65. package/.scannerwork/scanner-report/component-8.pb +1 -0
  66. package/.scannerwork/scanner-report/component-9.pb +1 -1
  67. package/.scannerwork/scanner-report/coverages-10.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-14.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-15.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-17.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-39.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-40.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-41.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-45.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-48.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-50.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-8.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-9.pb +0 -0
  102. package/.scannerwork/scanner-report/duplications-12.pb +3 -0
  103. package/.scannerwork/scanner-report/duplications-16.pb +0 -2
  104. package/.scannerwork/scanner-report/duplications-17.pb +0 -2
  105. package/.scannerwork/scanner-report/duplications-4.pb +2 -0
  106. package/.scannerwork/scanner-report/duplications-46.pb +0 -2
  107. package/.scannerwork/scanner-report/duplications-50.pb +1 -1
  108. package/.scannerwork/scanner-report/duplications-51.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-64.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-66.pb +2 -0
  111. package/.scannerwork/scanner-report/duplications-9.pb +2 -0
  112. package/.scannerwork/scanner-report/issues-12.pb +3 -2
  113. package/.scannerwork/scanner-report/issues-35.pb +3 -0
  114. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  115. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-14.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-15.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-17.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-36.pb +15 -0
  131. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-41.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-42.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-44.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-45.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-48.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-50.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-60.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-8.pb +0 -0
  155. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  156. package/.scannerwork/scanner-report/metadata.pb +0 -0
  157. package/.scannerwork/scanner-report/source-10.txt +16 -19
  158. package/.scannerwork/scanner-report/source-12.txt +193 -22
  159. package/.scannerwork/scanner-report/source-13.txt +78 -6
  160. package/.scannerwork/scanner-report/source-14.txt +112 -44
  161. package/.scannerwork/scanner-report/source-15.txt +428 -16
  162. package/.scannerwork/scanner-report/source-16.txt +259 -153
  163. package/.scannerwork/scanner-report/source-17.txt +84 -167
  164. package/.scannerwork/scanner-report/source-18.txt +83 -42
  165. package/.scannerwork/scanner-report/source-19.txt +114 -86
  166. package/.scannerwork/scanner-report/source-2.txt +414 -0
  167. package/.scannerwork/scanner-report/source-20.txt +41 -77
  168. package/.scannerwork/scanner-report/source-21.txt +9 -10
  169. package/.scannerwork/scanner-report/source-22.txt +22 -115
  170. package/.scannerwork/scanner-report/source-3.txt +424 -0
  171. package/.scannerwork/scanner-report/source-34.txt +37 -0
  172. package/.scannerwork/scanner-report/source-35.txt +42 -0
  173. package/.scannerwork/scanner-report/source-36.txt +151 -0
  174. package/.scannerwork/scanner-report/source-38.txt +424 -213
  175. package/.scannerwork/scanner-report/source-39.txt +115 -23
  176. package/.scannerwork/scanner-report/source-4.txt +187 -424
  177. package/.scannerwork/scanner-report/source-40.txt +88 -426
  178. package/.scannerwork/scanner-report/source-41.txt +32 -315
  179. package/.scannerwork/scanner-report/source-42.txt +60 -131
  180. package/.scannerwork/scanner-report/source-44.txt +178 -424
  181. package/.scannerwork/scanner-report/source-45.txt +118 -0
  182. package/.scannerwork/scanner-report/source-46.txt +14 -65
  183. package/.scannerwork/scanner-report/source-47.txt +91 -24
  184. package/.scannerwork/scanner-report/source-48.txt +140 -17
  185. package/.scannerwork/scanner-report/source-49.txt +256 -55
  186. package/.scannerwork/scanner-report/source-5.txt +29 -0
  187. package/.scannerwork/scanner-report/source-50.txt +29 -12
  188. package/.scannerwork/scanner-report/source-51.txt +50 -139
  189. package/.scannerwork/scanner-report/source-52.txt +16 -266
  190. package/.scannerwork/scanner-report/source-54.txt +32 -104
  191. package/.scannerwork/scanner-report/source-55.txt +424 -111
  192. package/.scannerwork/scanner-report/source-6.txt +305 -22
  193. package/.scannerwork/scanner-report/source-60.txt +60 -424
  194. package/.scannerwork/scanner-report/source-64.txt +190 -102
  195. package/.scannerwork/scanner-report/source-68.txt +102 -190
  196. package/.scannerwork/scanner-report/source-7.txt +159 -382
  197. package/.scannerwork/scanner-report/source-8.txt +62 -0
  198. package/.scannerwork/scanner-report/source-9.txt +167 -84
  199. package/.scannerwork/scanner-report/symbols-10.pb +9 -23
  200. package/.scannerwork/scanner-report/symbols-12.pb +264 -19
  201. package/.scannerwork/scanner-report/symbols-13.pb +58 -8
  202. package/.scannerwork/scanner-report/symbols-14.pb +86 -24
  203. package/.scannerwork/scanner-report/symbols-15.pb +790 -9
  204. package/.scannerwork/scanner-report/symbols-16.pb +417 -216
  205. package/.scannerwork/scanner-report/symbols-17.pb +69 -203
  206. package/.scannerwork/scanner-report/symbols-18.pb +59 -33
  207. package/.scannerwork/scanner-report/symbols-19.pb +71 -59
  208. package/.scannerwork/scanner-report/symbols-2.pb +604 -0
  209. package/.scannerwork/scanner-report/symbols-20.pb +32 -57
  210. package/.scannerwork/scanner-report/symbols-21.pb +13 -21
  211. package/.scannerwork/scanner-report/symbols-22.pb +31 -71
  212. package/.scannerwork/scanner-report/symbols-34.pb +13 -0
  213. package/.scannerwork/scanner-report/symbols-35.pb +19 -0
  214. package/.scannerwork/scanner-report/symbols-36.pb +93 -0
  215. package/.scannerwork/scanner-report/symbols-39.pb +33 -13
  216. package/.scannerwork/scanner-report/symbols-4.pb +227 -0
  217. package/.scannerwork/scanner-report/symbols-40.pb +56 -787
  218. package/.scannerwork/scanner-report/symbols-41.pb +20 -353
  219. package/.scannerwork/scanner-report/symbols-42.pb +45 -92
  220. package/.scannerwork/scanner-report/symbols-45.pb +30 -0
  221. package/.scannerwork/scanner-report/symbols-46.pb +16 -42
  222. package/.scannerwork/scanner-report/symbols-47.pb +44 -18
  223. package/.scannerwork/scanner-report/symbols-48.pb +126 -18
  224. package/.scannerwork/scanner-report/symbols-49.pb +354 -46
  225. package/.scannerwork/scanner-report/symbols-5.pb +8 -0
  226. package/.scannerwork/scanner-report/symbols-50.pb +38 -36
  227. package/.scannerwork/scanner-report/symbols-51.pb +42 -126
  228. package/.scannerwork/scanner-report/symbols-52.pb +14 -354
  229. package/.scannerwork/scanner-report/symbols-54.pb +7 -30
  230. package/.scannerwork/scanner-report/symbols-6.pb +353 -7
  231. package/.scannerwork/scanner-report/symbols-7.pb +203 -598
  232. package/.scannerwork/scanner-report/symbols-8.pb +24 -0
  233. package/.scannerwork/scanner-report/symbols-9.pb +203 -69
  234. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +25 -20
  235. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +257 -26
  236. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +119 -14
  237. package/.scannerwork/scanner-report/syntax-highlightings-14.pb +89 -61
  238. package/.scannerwork/scanner-report/syntax-highlightings-15.pb +592 -26
  239. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +613 -261
  240. package/.scannerwork/scanner-report/syntax-highlightings-17.pb +67 -240
  241. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +140 -72
  242. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +143 -140
  243. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +641 -0
  244. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +68 -112
  245. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +13 -26
  246. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +31 -143
  247. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +3341 -0
  248. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +62 -0
  249. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +66 -0
  250. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +237 -0
  251. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +3257 -215
  252. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +94 -27
  253. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +289 -3261
  254. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +91 -585
  255. package/.scannerwork/scanner-report/syntax-highlightings-41.pb +34 -590
  256. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +62 -204
  257. package/.scannerwork/scanner-report/syntax-highlightings-44.pb +209 -3306
  258. package/.scannerwork/scanner-report/syntax-highlightings-45.pb +113 -0
  259. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +18 -59
  260. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +91 -29
  261. package/.scannerwork/scanner-report/syntax-highlightings-48.pb +180 -19
  262. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +245 -55
  263. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +49 -0
  264. package/.scannerwork/scanner-report/syntax-highlightings-50.pb +48 -36
  265. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +42 -174
  266. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +15 -255
  267. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +33 -84
  268. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +3329 -122
  269. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +587 -29
  270. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +72 -3330
  271. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +218 -685
  272. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +684 -218
  273. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +179 -530
  274. package/.scannerwork/scanner-report/syntax-highlightings-8.pb +97 -0
  275. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +240 -67
  276. package/CHANGES.md +3 -0
  277. package/package.json +1 -1
  278. package/test-18-results.xml +155 -155
  279. package/test-20-results.xml +155 -155
  280. package/test-21-results.xml +147 -147
  281. package/test-iam-20-results.xml +50 -50
  282. package/.scannerwork/scanner-report/changesets-23.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-24.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-38.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-53.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-55.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-56.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-57.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-58.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-59.pb +0 -1
  293. package/.scannerwork/scanner-report/changesets-62.pb +0 -1
  294. package/.scannerwork/scanner-report/changesets-63.pb +0 -1
  295. package/.scannerwork/scanner-report/changesets-68.pb +0 -1
  296. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  297. package/.scannerwork/scanner-report/component-23.pb +0 -1
  298. package/.scannerwork/scanner-report/component-24.pb +0 -1
  299. package/.scannerwork/scanner-report/component-25.pb +0 -1
  300. package/.scannerwork/scanner-report/component-26.pb +0 -1
  301. package/.scannerwork/scanner-report/component-53.pb +0 -1
  302. package/.scannerwork/scanner-report/component-56.pb +0 -1
  303. package/.scannerwork/scanner-report/component-57.pb +0 -1
  304. package/.scannerwork/scanner-report/component-58.pb +0 -1
  305. package/.scannerwork/scanner-report/component-59.pb +0 -1
  306. package/.scannerwork/scanner-report/component-62.pb +0 -1
  307. package/.scannerwork/scanner-report/component-63.pb +0 -1
  308. package/.scannerwork/scanner-report/component-69.pb +0 -1
  309. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  310. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  311. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  312. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  316. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  317. package/.scannerwork/scanner-report/duplications-38.pb +0 -3
  318. package/.scannerwork/scanner-report/duplications-68.pb +0 -2
  319. package/.scannerwork/scanner-report/duplications-69.pb +0 -2
  320. package/.scannerwork/scanner-report/issues-38.pb +0 -4
  321. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  322. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  323. package/.scannerwork/scanner-report/measures-25.pb +0 -16
  324. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  325. package/.scannerwork/scanner-report/measures-56.pb +0 -16
  326. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-59.pb +0 -15
  328. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  329. package/.scannerwork/scanner-report/source-23.txt +0 -130
  330. package/.scannerwork/scanner-report/source-24.txt +0 -191
  331. package/.scannerwork/scanner-report/source-25.txt +0 -293
  332. package/.scannerwork/scanner-report/source-53.txt +0 -31
  333. package/.scannerwork/scanner-report/source-56.txt +0 -178
  334. package/.scannerwork/scanner-report/source-57.txt +0 -129
  335. package/.scannerwork/scanner-report/source-59.txt +0 -113
  336. package/.scannerwork/scanner-report/source-62.txt +0 -60
  337. package/.scannerwork/scanner-report/symbols-23.pb +0 -86
  338. package/.scannerwork/scanner-report/symbols-24.pb +0 -209
  339. package/.scannerwork/scanner-report/symbols-25.pb +0 -428
  340. package/.scannerwork/scanner-report/symbols-38.pb +0 -264
  341. package/.scannerwork/scanner-report/symbols-53.pb +0 -14
  342. package/.scannerwork/scanner-report/symbols-55.pb +0 -59
  343. package/.scannerwork/scanner-report/symbols-57.pb +0 -33
  344. package/.scannerwork/scanner-report/symbols-59.pb +0 -46
  345. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +0 -125
  346. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +0 -290
  347. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +0 -720
  348. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +0 -45
  349. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +0 -243
  350. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +0 -129
  351. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +0 -126
  352. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +0 -82
  353. /package/.scannerwork/scanner-report/{coverages-26.pb → coverages-37.pb} +0 -0
  354. /package/.scannerwork/scanner-report/{coverages-58.pb → coverages-43.pb} +0 -0
  355. /package/.scannerwork/scanner-report/{coverages-56.pb → coverages-44.pb} +0 -0
  356. /package/.scannerwork/scanner-report/{coverages-62.pb → coverages-60.pb} +0 -0
  357. /package/.scannerwork/scanner-report/{coverages-63.pb → coverages-61.pb} +0 -0
  358. /package/.scannerwork/scanner-report/{coverages-68.pb → coverages-64.pb} +0 -0
  359. /package/.scannerwork/scanner-report/{coverages-69.pb → coverages-66.pb} +0 -0
  360. /package/.scannerwork/scanner-report/{duplications-23.pb → duplications-13.pb} +0 -0
  361. /package/.scannerwork/scanner-report/{duplications-24.pb → duplications-2.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{duplications-25.pb → duplications-34.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-35.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{duplications-53.pb → duplications-36.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{duplications-55.pb → duplications-37.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{duplications-56.pb → duplications-43.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{duplications-57.pb → duplications-44.pb} +0 -0
  368. /package/.scannerwork/scanner-report/{duplications-58.pb → duplications-45.pb} +0 -0
  369. /package/.scannerwork/scanner-report/{duplications-59.pb → duplications-60.pb} +0 -0
  370. /package/.scannerwork/scanner-report/{duplications-62.pb → duplications-61.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{duplications-63.pb → duplications-8.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{issues-23.pb → issues-14.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{issues-41.pb → issues-6.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{measures-26.pb → measures-37.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{measures-58.pb → measures-43.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{measures-63.pb → measures-61.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{measures-69.pb → measures-66.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{source-26.txt → source-37.txt} +0 -0
  379. /package/.scannerwork/scanner-report/{source-58.txt → source-43.txt} +0 -0
  380. /package/.scannerwork/scanner-report/{source-63.txt → source-61.txt} +0 -0
  381. /package/.scannerwork/scanner-report/{source-69.txt → source-66.txt} +0 -0
  382. /package/.scannerwork/scanner-report/{symbols-26.pb → symbols-37.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{symbols-58.pb → symbols-43.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{symbols-56.pb → symbols-44.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{symbols-62.pb → symbols-60.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{symbols-63.pb → symbols-61.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{symbols-68.pb → symbols-64.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{symbols-69.pb → symbols-66.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{syntax-highlightings-26.pb → syntax-highlightings-37.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{syntax-highlightings-58.pb → syntax-highlightings-43.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{syntax-highlightings-63.pb → syntax-highlightings-61.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{syntax-highlightings-69.pb → syntax-highlightings-66.pb} +0 -0
@@ -15,26 +15,23 @@
15
15
  /* global describe it */
16
16
  'use strict';
17
17
 
18
- const assert = require('assert');
19
- const logfilesummary = require('../includes/logfilesummary.js');
18
+ delete require.cache[require.resolve('./citestutils.js')];
19
+ const u = require('./citestutils.js');
20
20
 
21
- describe('#unit Fetching summary from the log file', function() {
22
- it('should fetch a summary correctly', function() {
23
- return new Promise((resolve, reject) => {
24
- logfilesummary('./test/fixtures/test.log', function(err, data) {
25
- try {
26
- assert.ok(!err);
27
- assert.ok(data);
28
- assert.strictEqual(data.changesComplete, true);
29
- assert.strictEqual(typeof data.batches, 'object');
30
- assert.strictEqual(Object.keys(data.batches).length, 2);
31
- assert.deepStrictEqual(data.batches['1'], true);
32
- assert.deepStrictEqual(data.batches['4'], true);
33
- resolve();
34
- } catch (err) {
35
- reject(err);
36
- }
37
- });
21
+ [{ useApi: true }, { useApi: false }].forEach(function(params) {
22
+ describe(u.scenario('End to end backup and restore', params), function() {
23
+ it('should backup and restore animaldb', async function() {
24
+ // Allow up to 60 s for backup and restore of animaldb
25
+ u.setTimeout(this, 60);
26
+ return u.testDirectBackupAndRestore(params, 'animaldb', this.dbName);
27
+ });
28
+
29
+ it('should backup and restore largedb1g #slow', async function() {
30
+ // Allow up to 30 m for backup and restore of largedb1g
31
+ // This is a long time but when many builds run in parallel it can take a
32
+ // while to get this done.
33
+ u.setTimeout(this, 30 * 60);
34
+ return u.testDirectBackupAndRestore(params, 'largedb1g', this.dbName);
38
35
  });
39
36
  });
40
37
  });
@@ -12,31 +12,202 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe it */
15
+ /* global describe it beforeEach */
16
16
  'use strict';
17
17
 
18
18
  const assert = require('assert');
19
- const fs = require('fs');
20
- const u = require('./citestutils.js');
21
-
22
- describe('Write error tests', function() {
23
- it('calls callback with error set when stream is not writeable', async function() {
24
- u.setTimeout(this, 10);
25
- const dirname = fs.mkdtempSync('test_backup_');
26
- // make temp dir read only
27
- fs.chmodSync(dirname, 0o444);
28
- const filename = dirname + '/test.backup';
29
- const backupStream = fs.createWriteStream(filename, { flags: 'w' });
30
- const params = { useApi: true };
31
- // try to do backup and check err was set in callback
32
- return u.testBackup(params, 'animaldb', backupStream).then(() => {
33
- assert.fail('Should throw an "EACCES" error');
34
- }).catch((resultErr) => {
35
- // cleanup temp dir
36
- fs.rmdirSync(dirname);
37
- // error should have been set
38
- assert.ok(resultErr);
39
- assert.strictEqual(resultErr.code, 'EACCES');
19
+ const nock = require('nock');
20
+ const request = require('../includes/request.js');
21
+ const error = require('../includes/error.js');
22
+
23
+ const url = 'http://localhost:7777/testdb';
24
+ const db = request.client(url, { parallelism: 1 });
25
+ const timeoutDb = request.client(url, { parallelism: 1, requestTimeout: 500 });
26
+ const longTestTimeout = 3000;
27
+
28
+ beforeEach('Clean nock', function() {
29
+ nock.cleanAll();
30
+ });
31
+
32
+ describe('#unit Check request headers', function() {
33
+ it('should have a couchbackup user-agent', async function() {
34
+ const couch = nock(url)
35
+ .matchHeader('user-agent', /couchbackup-cloudant\/\d+\.\d+\.\d+(?:-SNAPSHOT)? \(Node.js v\d+\.\d+\.\d+\)/)
36
+ .head('/good')
37
+ .reply(200);
38
+
39
+ return db.service.headDocument({ db: db.db, docId: 'good' }).then(() => {
40
+ assert.ok(couch.isDone());
41
+ });
42
+ });
43
+ });
44
+
45
+ describe('#unit Check request response error callback', function() {
46
+ it('should not callback with error for 200 response', async function() {
47
+ const couch = nock(url)
48
+ .get('/good')
49
+ .reply(200, { ok: true });
50
+
51
+ return db.service.getDocument({ db: db.db, docId: 'good' }).then(response => {
52
+ assert.ok(response.result);
53
+ assert.ok(couch.isDone());
54
+ });
55
+ });
56
+
57
+ it('should callback with error after 3 500 responses', async function() {
58
+ const couch = nock(url)
59
+ .get('/bad')
60
+ .times(3)
61
+ .reply(500, function(uri, requestBody) {
62
+ this.req.response.statusMessage = 'Internal Server Error';
63
+ return { error: 'foo', reason: 'bar' };
64
+ });
65
+
66
+ return assert.rejects(
67
+ db.service.getDocument({ db: db.db, docId: 'bad' }),
68
+ (err) => {
69
+ err = error.convertResponseError(err);
70
+ assert.strictEqual(err.name, 'HTTPFatalError');
71
+ assert.strictEqual(err.message, `500 Internal Server Error: get ${url}/bad - Error: foo, Reason: bar`);
72
+ assert.ok(couch.isDone());
73
+ return true;
74
+ });
75
+ }).timeout(longTestTimeout);
76
+
77
+ it('should callback with error after 3 POST 503 responses', async function() {
78
+ const couch = nock(url)
79
+ .post('/_bulk_get')
80
+ .query(true)
81
+ .times(3)
82
+ .reply(503, function(uri, requestBody) {
83
+ this.req.response.statusMessage = 'Service Unavailable';
84
+ return { error: 'service_unavailable', reason: 'Service unavailable' };
85
+ });
86
+
87
+ return assert.rejects(
88
+ db.service.postBulkGet({ db: db.db, revs: true, docs: [] }),
89
+ (err) => {
90
+ err = error.convertResponseError(err);
91
+ assert.strictEqual(err.name, 'HTTPFatalError');
92
+ assert.strictEqual(err.message, `503 Service Unavailable: post ${url}/_bulk_get - Error: service_unavailable, Reason: Service unavailable`);
93
+ assert.ok(couch.isDone());
94
+ return true;
95
+ });
96
+ }).timeout(longTestTimeout);
97
+
98
+ it('should callback with error after 3 429 responses', async function() {
99
+ const couch = nock(url)
100
+ .get('/bad')
101
+ .times(3)
102
+ .reply(429, function(uri, requestBody) {
103
+ this.req.response.statusMessage = 'Too Many Requests';
104
+ return { error: 'foo', reason: 'bar' };
105
+ });
106
+
107
+ return assert.rejects(
108
+ db.service.getDocument({ db: db.db, docId: 'bad' }),
109
+ (err) => {
110
+ err = error.convertResponseError(err);
111
+ assert.strictEqual(err.name, 'HTTPFatalError');
112
+ assert.strictEqual(err.message, `429 Too Many Requests: get ${url}/bad - Error: foo, Reason: bar`);
113
+ assert.ok(couch.isDone());
114
+ return true;
115
+ });
116
+ }).timeout(longTestTimeout);
117
+
118
+ it('should callback with fatal error for 404 response', async function() {
119
+ const couch = nock(url)
120
+ .get('/bad')
121
+ .reply(404, function(uri, requestBody) {
122
+ this.req.response.statusMessage = 'Not Found';
123
+ return { error: 'foo', reason: 'bar' };
124
+ });
125
+
126
+ return assert.rejects(
127
+ db.service.getDocument({ db: db.db, docId: 'bad' }),
128
+ (err) => {
129
+ err = error.convertResponseError(err);
130
+ assert.strictEqual(err.name, 'HTTPFatalError');
131
+ assert.strictEqual(err.message, `404 Not Found: get ${url}/bad - Error: foo, Reason: bar`);
132
+ assert.ok(couch.isDone());
133
+ return true;
134
+ });
135
+ });
136
+
137
+ it('should callback with same error for no status code error response', async function() {
138
+ const couch = nock(url)
139
+ .get('/bad')
140
+ .times(3)
141
+ .replyWithError('testing badness');
142
+
143
+ return assert.rejects(
144
+ db.service.getDocument({ db: db.db, docId: 'bad' }),
145
+ (err) => {
146
+ const err2 = error.convertResponseError(err);
147
+ assert.strictEqual(err, err2);
148
+ assert.ok(couch.isDone());
149
+ return true;
150
+ });
151
+ }).timeout(longTestTimeout);
152
+
153
+ it('should retry request if HTTP request gets timed out', async function() {
154
+ const couch = nock(url)
155
+ .post('/_bulk_get')
156
+ .query(true)
157
+ .delay(1000)
158
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }] } })
159
+ .post('/_bulk_get')
160
+ .query(true)
161
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }, { id: '2', ok: { _id: '2' } }] } });
162
+
163
+ return timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then((response) => {
164
+ assert.ok(response);
165
+ assert.ok(response.result);
166
+ assert.ok(response.result.results);
167
+ assert.ok(response.result.results.docs);
168
+ assert.strictEqual(response.result.results.docs.length, 2);
169
+ assert.ok(couch.isDone());
170
+ });
171
+ });
172
+
173
+ it('should callback with error code ESOCKETTIMEDOUT if 3 HTTP requests gets timed out', async function() {
174
+ // Increase the timeout for this test to allow for the delays
175
+ this.timeout(3000);
176
+ const couch = nock(url)
177
+ .post('/_bulk_get')
178
+ .query(true)
179
+ .delay(1000)
180
+ .times(3)
181
+ .reply(200, { ok: true });
182
+
183
+ return assert.rejects(
184
+ timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }),
185
+ (err) => {
186
+ err = error.convertResponseError(err);
187
+ // Note axios returns ECONNABORTED rather than ESOCKETTIMEDOUT
188
+ // See https://github.com/axios/axios/issues/2710 via https://github.com/axios/axios/issues/1543`
189
+ assert.strictEqual(err.statusText, 'ECONNABORTED');
190
+ assert.strictEqual(err.message, `timeout of 500ms exceeded: post ${url}/_bulk_get ECONNABORTED`);
191
+ assert.ok(couch.isDone());
192
+ return true;
193
+ });
194
+ });
195
+ describe('#unit Check credentials', async function() {
196
+ it('should properly decode username and password', async function() {
197
+ const username = 'user%123';
198
+ const password = 'colon:at@321';
199
+ const url = `http://${encodeURIComponent(username)}:${encodeURIComponent(password)}@localhost:7777/testdb`;
200
+ const sessionUrl = 'http://localhost:7777';
201
+ const couch = nock(sessionUrl)
202
+ .post('/_session', { username: username, password: password })
203
+ .reply(200, { ok: true }, { 'Set-Cookie': 'AuthSession=ABC123DEF4356;' })
204
+ .get('/')
205
+ .reply(200);
206
+ const db = request.client(url, { parallelism: 1 });
207
+ return db.service.getServerInformation().then(response => {
208
+ assert.ok(response);
209
+ assert.ok(couch.isDone());
210
+ });
40
211
  });
41
212
  });
42
213
  });
@@ -15,15 +15,87 @@
15
15
  /* global describe it */
16
16
  'use strict';
17
17
 
18
+ const assert = require('assert');
19
+ const fs = require('fs');
20
+ const { once } = require('node:events');
18
21
  const u = require('./citestutils.js');
19
22
 
20
23
  [{ useApi: true }, { useApi: false }].forEach(function(params) {
21
- describe(u.scenario('#slowest End to end backup and restore', params), function() {
22
- // 10 GB is about the largest the CI can handle before getting very upset
23
- // about how long things are taking
24
- it('should backup and restore largedb10g', async function() {
25
- u.setTimeout(this, 350 * 60);
26
- return u.testDirectBackupAndRestore(params, 'largedb10g', this.dbName);
24
+ describe(u.scenario('Resume tests', params), function() {
25
+ it('should create a log file', async function() {
26
+ // Allow up to 90 s for this test
27
+ u.setTimeout(this, 60);
28
+
29
+ const actualBackup = `./${this.fileName}`;
30
+ const logFile = `./${this.fileName}` + '.log';
31
+ const p = u.p(params, { opts: { log: logFile } });
32
+ return u.testBackupToFile(p, 'animaldb', actualBackup).then(() => {
33
+ assert.ok(fs.existsSync(logFile), 'The log file should exist.');
34
+ });
35
+ });
36
+
37
+ it('should restore corrupted animaldb to a database correctly', async function() {
38
+ // Allow up to 60 s to restore and compare (again it should be faster)!
39
+ u.setTimeout(this, 60);
40
+ const input = fs.createReadStream('./test/fixtures/animaldb_corrupted.json');
41
+ const dbName = this.dbName;
42
+ const p = u.p(params, { expectedRestoreErrorRecoverable: { name: 'BackupFileJsonError' } });
43
+ return once(input, 'open')
44
+ .then(() => {
45
+ return u.testRestore(p, input, dbName);
46
+ }).then(() => {
47
+ return u.dbCompare('animaldb', dbName);
48
+ });
27
49
  });
50
+
51
+ it('should restore resumed animaldb with blank line to a database correctly', async function() {
52
+ // Allow up to 60 s to restore and compare (again it should be faster)!
53
+ u.setTimeout(this, 60);
54
+ const input = fs.createReadStream('./test/fixtures/animaldb_resumed_blank.json');
55
+ const dbName = this.dbName;
56
+ return once(input, 'open')
57
+ .then(() => {
58
+ return u.testRestore(params, input, dbName);
59
+ }).then(() => {
60
+ return u.dbCompare('animaldb', dbName);
61
+ });
62
+ });
63
+ });
64
+ });
65
+
66
+ describe('Resume tests', function() {
67
+ // Currently cannot abort API backups, when we do this test should be run for
68
+ // both API and CLI
69
+ it('should correctly backup and restore backup10m', async function() {
70
+ // Allow up to 90 s for this test
71
+ u.setTimeout(this, 90);
72
+
73
+ const actualBackup = `./${this.fileName}`;
74
+ const logFile = `./${this.fileName}` + '.log';
75
+ // Use abort parameter to terminate the backup
76
+ const p = u.p(params, { abort: true }, { opts: { log: logFile } });
77
+ const restoreDb = this.dbName;
78
+ // Set the database doc count as fewer than this should be written during
79
+ // resumed backup.
80
+ p.exclusiveMaxExpected = 5096;
81
+
82
+ return u.testBackupAbortResumeRestore(p, 'backup10m', actualBackup, restoreDb);
83
+ });
84
+ // Note --output is only valid for CLI usage, this test should only run for CLI
85
+ const params = { useApi: false };
86
+ it('should correctly backup and restore backup10m using --output', async function() {
87
+ // Allow up to 90 s for this test
88
+ u.setTimeout(this, 90);
89
+
90
+ const actualBackup = `./${this.fileName}`;
91
+ const logFile = `./${this.fileName}` + '.log';
92
+ // Use abort parameter to terminate the backup
93
+ const p = u.p(params, { abort: true }, { opts: { output: actualBackup, log: logFile } });
94
+ const restoreDb = this.dbName;
95
+ // Set the database doc count as fewer than this should be written during
96
+ // resumed backup.
97
+ p.exclusiveMaxExpected = 5096;
98
+
99
+ return await u.testBackupAbortResumeRestore(p, 'backup10m', actualBackup, restoreDb);
28
100
  });
29
101
  });
@@ -12,51 +12,119 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe it */
15
+ /* global describe it before after */
16
16
  'use strict';
17
17
 
18
- const fs = require('fs');
19
- const { once } = require('node:events');
20
- const u = require('./citestutils.js');
21
-
22
- [{ useApi: true }, { useApi: false }].forEach(function(params) {
23
- describe(u.scenario('Compression tests', params), function() {
24
- const p = u.p(params, { compression: true });
25
-
26
- it('should backup animaldb to a compressed file', async function() {
27
- // Allow up to 60 s for backup of animaldb
28
- u.setTimeout(this, 60);
29
- const compressedBackup = `./${this.fileName}`;
30
- const output = fs.createWriteStream(compressedBackup);
31
- return once(output, 'open')
32
- .then(() => {
33
- return u.testBackup(p, 'animaldb', output);
34
- }).then(() => {
35
- return u.assertGzipFile(compressedBackup);
36
- });
37
- });
38
-
39
- it('should backup and restore animaldb via a compressed file', async function() {
40
- // Allow up to 60 s for backup and restore of animaldb
41
- u.setTimeout(this, 60);
42
- const compressedBackup = `./${this.fileName}`;
43
- return u.testBackupAndRestoreViaFile(p, 'animaldb', compressedBackup, this.dbName).then(() => {
44
- return u.assertGzipFile(compressedBackup);
45
- });
46
- });
47
-
48
- it('should backup and restore animaldb via a compressed stream', async function() {
49
- // Allow up to 60 s for backup and restore of animaldb
50
- u.setTimeout(this, 60);
51
- return u.testDirectBackupAndRestore(p, 'animaldb', this.dbName);
52
- });
53
-
54
- it('should backup and restore largedb2g via a compressed file #slower', async function() {
55
- // Takes ~ 25 min using CLI, but sometimes over an hour with API
56
- u.setTimeout(this, 180 * 60);
57
- const compressedBackup = `./${this.fileName}`;
58
- params.compression = true;
59
- return u.testBackupAndRestoreViaFile(p, 'largedb2g', compressedBackup, this.dbName);
60
- });
18
+ const assert = require('assert');
19
+ const applyEnvVars = require('../includes/config.js').applyEnvironmentVariables;
20
+
21
+ describe('#unit Configuration', function() {
22
+ let processEnvCopy;
23
+
24
+ before('Save env', function() {
25
+ // Copy env so we can reset it after the tests
26
+ processEnvCopy = JSON.parse(JSON.stringify(process.env));
27
+ });
28
+
29
+ after('Reset env', function() {
30
+ process.env = processEnvCopy;
31
+ });
32
+
33
+ it('respects the COUCH_URL env variable', function() {
34
+ process.env.COUCH_URL = 'http://user:pass@myurl.com';
35
+ const config = {};
36
+ applyEnvVars(config);
37
+ assert.strictEqual(typeof config.url, 'string');
38
+ assert.strictEqual(config.url, process.env.COUCH_URL);
39
+ });
40
+
41
+ it('respects the COUCH_DATABASE env variable', function() {
42
+ process.env.COUCH_DATABASE = 'mydb';
43
+ const config = {};
44
+ applyEnvVars(config);
45
+ assert.strictEqual(typeof config.db, 'string');
46
+ assert.strictEqual(config.db, process.env.COUCH_DATABASE);
47
+ });
48
+
49
+ it('respects the COUCH_BUFFER_SIZE env variable', function() {
50
+ process.env.COUCH_BUFFER_SIZE = '1000';
51
+ const config = {};
52
+ applyEnvVars(config);
53
+ assert.strictEqual(typeof config.bufferSize, 'number');
54
+ assert.strictEqual(config.bufferSize, 1000);
55
+ });
56
+
57
+ it('respects the COUCH_PARALLELISM env variable', function() {
58
+ process.env.COUCH_PARALLELISM = '20';
59
+ const config = {};
60
+ applyEnvVars(config);
61
+ assert.strictEqual(typeof config.parallelism, 'number');
62
+ assert.strictEqual(config.parallelism, 20);
63
+ });
64
+
65
+ it('respects the COUCH_REQUEST_TIMEOUT env variable', function() {
66
+ process.env.COUCH_REQUEST_TIMEOUT = '10000';
67
+ const config = {};
68
+ applyEnvVars(config);
69
+ assert.strictEqual(typeof config.requestTimeout, 'number');
70
+ assert.strictEqual(config.requestTimeout, 10000);
71
+ });
72
+
73
+ it('respects the CLOUDANT_IAM_API_KEY env variable', function() {
74
+ const key = 'ABC123-ZYX987_cba789-xyz321';
75
+ process.env.CLOUDANT_IAM_API_KEY = key;
76
+ const config = {};
77
+ applyEnvVars(config);
78
+ assert.strictEqual(typeof config.iamApiKey, 'string');
79
+ assert.strictEqual(config.iamApiKey, key);
80
+ });
81
+
82
+ it('respects the CLOUDANT_IAM_TOKEN_URL env variable', function() {
83
+ const u = 'https://testhost.example:1234/identity/token';
84
+ process.env.CLOUDANT_IAM_TOKEN_URL = u;
85
+ const config = {};
86
+ applyEnvVars(config);
87
+ assert.strictEqual(typeof config.iamTokenUrl, 'string');
88
+ assert.strictEqual(config.iamTokenUrl, u);
89
+ });
90
+
91
+ it('respects the COUCH_LOG env variable', function() {
92
+ process.env.COUCH_LOG = 'my.log';
93
+ const config = {};
94
+ applyEnvVars(config);
95
+ assert.strictEqual(typeof config.log, 'string');
96
+ assert.strictEqual(config.log, process.env.COUCH_LOG);
97
+ });
98
+
99
+ it('respects the COUCH_RESUME env variable', function() {
100
+ process.env.COUCH_RESUME = 'true';
101
+ const config = {};
102
+ applyEnvVars(config);
103
+ assert.strictEqual(typeof config.resume, 'boolean');
104
+ assert.strictEqual(config.resume, true);
105
+ });
106
+
107
+ it('respects the COUCH_OUTPUT env variable', function() {
108
+ process.env.COUCH_OUTPUT = 'myfile.txt';
109
+ const config = {};
110
+ applyEnvVars(config);
111
+ assert.strictEqual(typeof config.output, 'string');
112
+ assert.strictEqual(config.output, process.env.COUCH_OUTPUT);
113
+ });
114
+
115
+ it('respects the COUCH_MODE env variable', function() {
116
+ process.env.COUCH_MODE = 'shallow';
117
+ const config = {};
118
+ applyEnvVars(config);
119
+ assert.strictEqual(typeof config.mode, 'string');
120
+ assert.strictEqual(config.mode, 'shallow');
121
+ });
122
+
123
+ it('respects the COUCH_QUIET env variable', function() {
124
+ process.env.COUCH_QUIET = 'true';
125
+ const config = {};
126
+ applyEnvVars(config);
127
+ assert.strictEqual(typeof config.quiet, 'boolean');
128
+ assert.strictEqual(config.quiet, true);
61
129
  });
62
130
  });