@cloudant/couchbackup 2.9.8-SNAPSHOT.94 → 2.9.9-SNAPSHOT.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.scannerwork/report-task.txt +2 -2
- package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
- package/.scannerwork/scanner-report/analysis.log +1 -1
- package/.scannerwork/scanner-report/changesets-10.pb +2 -0
- package/.scannerwork/scanner-report/changesets-36.pb +1 -0
- package/.scannerwork/scanner-report/changesets-37.pb +1 -0
- package/.scannerwork/scanner-report/changesets-38.pb +1 -0
- package/.scannerwork/scanner-report/changesets-39.pb +1 -0
- package/.scannerwork/scanner-report/changesets-40.pb +1 -0
- package/.scannerwork/scanner-report/changesets-41.pb +1 -0
- package/.scannerwork/scanner-report/changesets-42.pb +1 -0
- package/.scannerwork/scanner-report/changesets-48.pb +1 -0
- package/.scannerwork/scanner-report/changesets-51.pb +1 -0
- package/.scannerwork/scanner-report/changesets-52.pb +1 -0
- package/.scannerwork/scanner-report/changesets-67.pb +1 -0
- package/.scannerwork/scanner-report/changesets-7.pb +1 -0
- package/.scannerwork/scanner-report/component-1.pb +2 -1
- package/.scannerwork/scanner-report/component-10.pb +2 -0
- package/.scannerwork/scanner-report/component-2.pb +1 -1
- package/.scannerwork/scanner-report/component-22.pb +1 -1
- package/.scannerwork/scanner-report/component-23.pb +1 -1
- package/.scannerwork/scanner-report/component-24.pb +1 -1
- package/.scannerwork/scanner-report/component-25.pb +1 -1
- package/.scannerwork/scanner-report/component-26.pb +1 -1
- package/.scannerwork/scanner-report/component-27.pb +1 -1
- package/.scannerwork/scanner-report/component-28.pb +1 -1
- package/.scannerwork/scanner-report/component-29.pb +1 -1
- package/.scannerwork/scanner-report/component-30.pb +1 -1
- package/.scannerwork/scanner-report/component-31.pb +1 -1
- package/.scannerwork/scanner-report/component-32.pb +1 -1
- package/.scannerwork/scanner-report/component-33.pb +1 -1
- package/.scannerwork/scanner-report/component-34.pb +1 -1
- package/.scannerwork/scanner-report/component-35.pb +1 -1
- package/.scannerwork/scanner-report/component-36.pb +1 -0
- package/.scannerwork/scanner-report/component-37.pb +1 -1
- package/.scannerwork/scanner-report/component-38.pb +1 -1
- package/.scannerwork/scanner-report/component-39.pb +1 -0
- package/.scannerwork/scanner-report/component-40.pb +1 -1
- package/.scannerwork/scanner-report/component-41.pb +1 -0
- package/.scannerwork/scanner-report/component-42.pb +1 -0
- package/.scannerwork/scanner-report/component-48.pb +1 -0
- package/.scannerwork/scanner-report/component-49.pb +1 -1
- package/.scannerwork/scanner-report/component-5.pb +1 -1
- package/.scannerwork/scanner-report/component-50.pb +1 -1
- package/.scannerwork/scanner-report/component-51.pb +1 -1
- package/.scannerwork/scanner-report/component-52.pb +1 -0
- package/.scannerwork/scanner-report/component-53.pb +1 -1
- package/.scannerwork/scanner-report/component-54.pb +1 -1
- package/.scannerwork/scanner-report/component-55.pb +1 -1
- package/.scannerwork/scanner-report/component-56.pb +1 -1
- package/.scannerwork/scanner-report/component-57.pb +1 -1
- package/.scannerwork/scanner-report/component-58.pb +1 -1
- package/.scannerwork/scanner-report/component-59.pb +1 -1
- package/.scannerwork/scanner-report/component-6.pb +1 -1
- package/.scannerwork/scanner-report/component-61.pb +1 -1
- package/.scannerwork/scanner-report/component-62.pb +1 -1
- package/.scannerwork/scanner-report/component-63.pb +1 -1
- package/.scannerwork/scanner-report/component-64.pb +1 -1
- package/.scannerwork/scanner-report/component-66.pb +1 -1
- package/.scannerwork/scanner-report/component-67.pb +1 -1
- package/.scannerwork/scanner-report/component-7.pb +1 -0
- package/.scannerwork/scanner-report/component-9.pb +1 -0
- package/.scannerwork/scanner-report/coverages-10.pb +0 -0
- package/.scannerwork/scanner-report/coverages-22.pb +0 -0
- package/.scannerwork/scanner-report/coverages-23.pb +0 -0
- package/.scannerwork/scanner-report/coverages-24.pb +0 -0
- package/.scannerwork/scanner-report/coverages-25.pb +0 -0
- package/.scannerwork/scanner-report/coverages-26.pb +0 -0
- package/.scannerwork/scanner-report/coverages-27.pb +0 -0
- package/.scannerwork/scanner-report/coverages-28.pb +0 -0
- package/.scannerwork/scanner-report/coverages-29.pb +0 -0
- package/.scannerwork/scanner-report/coverages-30.pb +0 -0
- package/.scannerwork/scanner-report/coverages-31.pb +0 -0
- package/.scannerwork/scanner-report/coverages-32.pb +0 -0
- package/.scannerwork/scanner-report/coverages-33.pb +0 -0
- package/.scannerwork/scanner-report/coverages-34.pb +0 -0
- package/.scannerwork/scanner-report/coverages-35.pb +0 -0
- package/.scannerwork/scanner-report/coverages-36.pb +0 -0
- package/.scannerwork/scanner-report/coverages-38.pb +0 -0
- package/.scannerwork/scanner-report/coverages-39.pb +0 -0
- package/.scannerwork/scanner-report/coverages-40.pb +0 -0
- package/.scannerwork/scanner-report/coverages-42.pb +0 -0
- package/.scannerwork/scanner-report/coverages-48.pb +0 -0
- package/.scannerwork/scanner-report/coverages-49.pb +0 -0
- package/.scannerwork/scanner-report/coverages-50.pb +0 -0
- package/.scannerwork/scanner-report/coverages-52.pb +0 -0
- package/.scannerwork/scanner-report/coverages-53.pb +0 -0
- package/.scannerwork/scanner-report/coverages-54.pb +0 -0
- package/.scannerwork/scanner-report/coverages-55.pb +0 -0
- package/.scannerwork/scanner-report/coverages-56.pb +0 -0
- package/.scannerwork/scanner-report/coverages-57.pb +0 -0
- package/.scannerwork/scanner-report/coverages-58.pb +0 -0
- package/.scannerwork/scanner-report/coverages-59.pb +0 -0
- package/.scannerwork/scanner-report/coverages-61.pb +0 -0
- package/.scannerwork/scanner-report/coverages-62.pb +0 -0
- package/.scannerwork/scanner-report/coverages-63.pb +0 -0
- package/.scannerwork/scanner-report/coverages-64.pb +0 -0
- package/.scannerwork/scanner-report/coverages-7.pb +0 -0
- package/.scannerwork/scanner-report/duplications-22.pb +3 -0
- package/.scannerwork/scanner-report/duplications-25.pb +0 -2
- package/.scannerwork/scanner-report/duplications-26.pb +2 -0
- package/.scannerwork/scanner-report/duplications-28.pb +3 -0
- package/.scannerwork/scanner-report/duplications-29.pb +2 -0
- package/.scannerwork/scanner-report/duplications-32.pb +0 -3
- package/.scannerwork/scanner-report/duplications-34.pb +0 -2
- package/.scannerwork/scanner-report/duplications-42.pb +2 -0
- package/.scannerwork/scanner-report/duplications-48.pb +2 -0
- package/.scannerwork/scanner-report/duplications-49.pb +1 -1
- package/.scannerwork/scanner-report/duplications-50.pb +0 -2
- package/.scannerwork/scanner-report/duplications-55.pb +2 -0
- package/.scannerwork/scanner-report/duplications-60.pb +1 -1
- package/.scannerwork/scanner-report/duplications-62.pb +0 -2
- package/.scannerwork/scanner-report/measures-10.pb +0 -0
- package/.scannerwork/scanner-report/measures-2.pb +0 -0
- package/.scannerwork/scanner-report/measures-22.pb +0 -0
- package/.scannerwork/scanner-report/measures-23.pb +0 -0
- package/.scannerwork/scanner-report/measures-24.pb +0 -0
- package/.scannerwork/scanner-report/measures-25.pb +0 -0
- package/.scannerwork/scanner-report/measures-26.pb +0 -0
- package/.scannerwork/scanner-report/measures-27.pb +0 -0
- package/.scannerwork/scanner-report/measures-28.pb +0 -0
- package/.scannerwork/scanner-report/measures-29.pb +0 -0
- package/.scannerwork/scanner-report/measures-30.pb +0 -0
- package/.scannerwork/scanner-report/measures-31.pb +0 -0
- package/.scannerwork/scanner-report/measures-32.pb +0 -0
- package/.scannerwork/scanner-report/measures-33.pb +0 -0
- package/.scannerwork/scanner-report/measures-34.pb +0 -0
- package/.scannerwork/scanner-report/measures-35.pb +0 -0
- package/.scannerwork/scanner-report/measures-36.pb +0 -0
- package/.scannerwork/scanner-report/measures-37.pb +0 -0
- package/.scannerwork/scanner-report/measures-38.pb +0 -0
- package/.scannerwork/scanner-report/measures-39.pb +0 -0
- package/.scannerwork/scanner-report/measures-40.pb +0 -0
- package/.scannerwork/scanner-report/measures-42.pb +0 -0
- package/.scannerwork/scanner-report/measures-48.pb +0 -0
- package/.scannerwork/scanner-report/measures-49.pb +0 -0
- package/.scannerwork/scanner-report/measures-5.pb +0 -0
- package/.scannerwork/scanner-report/measures-50.pb +0 -0
- package/.scannerwork/scanner-report/measures-51.pb +0 -0
- package/.scannerwork/scanner-report/measures-52.pb +0 -0
- package/.scannerwork/scanner-report/measures-53.pb +0 -0
- package/.scannerwork/scanner-report/measures-54.pb +0 -0
- package/.scannerwork/scanner-report/measures-55.pb +0 -0
- package/.scannerwork/scanner-report/measures-56.pb +0 -0
- package/.scannerwork/scanner-report/measures-57.pb +0 -0
- package/.scannerwork/scanner-report/measures-58.pb +0 -0
- package/.scannerwork/scanner-report/measures-59.pb +0 -0
- package/.scannerwork/scanner-report/measures-6.pb +0 -0
- package/.scannerwork/scanner-report/measures-61.pb +0 -0
- package/.scannerwork/scanner-report/measures-62.pb +0 -0
- package/.scannerwork/scanner-report/measures-63.pb +0 -0
- package/.scannerwork/scanner-report/measures-64.pb +0 -0
- package/.scannerwork/scanner-report/measures-66.pb +0 -0
- package/.scannerwork/scanner-report/measures-67.pb +0 -0
- package/.scannerwork/scanner-report/measures-7.pb +0 -0
- package/.scannerwork/scanner-report/measures-9.pb +0 -0
- package/.scannerwork/scanner-report/metadata.pb +0 -0
- package/.scannerwork/scanner-report/{source-19.txt → source-10.txt} +6 -13
- package/.scannerwork/scanner-report/source-2.txt +167 -147
- package/.scannerwork/scanner-report/source-22.txt +86 -123
- package/.scannerwork/scanner-report/source-23.txt +73 -15
- package/.scannerwork/scanner-report/source-24.txt +14 -15
- package/.scannerwork/scanner-report/source-25.txt +19 -128
- package/.scannerwork/scanner-report/source-26.txt +262 -37
- package/.scannerwork/scanner-report/source-27.txt +124 -17
- package/.scannerwork/scanner-report/source-28.txt +112 -81
- package/.scannerwork/scanner-report/source-29.txt +121 -118
- package/.scannerwork/scanner-report/source-30.txt +44 -49
- package/.scannerwork/scanner-report/source-31.txt +60 -585
- package/.scannerwork/scanner-report/source-32.txt +13 -98
- package/.scannerwork/scanner-report/source-33.txt +129 -11
- package/.scannerwork/scanner-report/source-34.txt +344 -203
- package/.scannerwork/scanner-report/source-35.txt +29 -96
- package/.scannerwork/scanner-report/source-36.txt +68 -0
- package/.scannerwork/scanner-report/source-37.txt +36 -509
- package/.scannerwork/scanner-report/source-38.txt +68 -167
- package/.scannerwork/scanner-report/source-39.txt +156 -0
- package/.scannerwork/scanner-report/source-40.txt +625 -509
- package/.scannerwork/scanner-report/source-42.txt +225 -0
- package/.scannerwork/scanner-report/source-48.txt +175 -0
- package/.scannerwork/scanner-report/source-49.txt +64 -49
- package/.scannerwork/scanner-report/source-5.txt +509 -131
- package/.scannerwork/scanner-report/source-50.txt +59 -172
- package/.scannerwork/scanner-report/source-51.txt +56 -509
- package/.scannerwork/scanner-report/source-52.txt +54 -0
- package/.scannerwork/scanner-report/source-53.txt +20 -138
- package/.scannerwork/scanner-report/source-54.txt +258 -23
- package/.scannerwork/scanner-report/source-55.txt +48 -151
- package/.scannerwork/scanner-report/source-56.txt +21 -109
- package/.scannerwork/scanner-report/source-57.txt +98 -21
- package/.scannerwork/scanner-report/source-58.txt +61 -35
- package/.scannerwork/scanner-report/source-59.txt +81 -88
- package/.scannerwork/scanner-report/source-6.txt +509 -293
- package/.scannerwork/scanner-report/source-61.txt +140 -56
- package/.scannerwork/scanner-report/source-62.txt +113 -59
- package/.scannerwork/scanner-report/source-63.txt +88 -81
- package/.scannerwork/scanner-report/source-64.txt +153 -93
- package/.scannerwork/scanner-report/source-66.txt +509 -281
- package/.scannerwork/scanner-report/source-67.txt +418 -509
- package/.scannerwork/scanner-report/source-7.txt +114 -0
- package/.scannerwork/scanner-report/source-9.txt +509 -0
- package/.scannerwork/scanner-report/symbols-10.pb +9 -0
- package/.scannerwork/scanner-report/symbols-22.pb +75 -110
- package/.scannerwork/scanner-report/symbols-23.pb +60 -10
- package/.scannerwork/scanner-report/symbols-24.pb +17 -14
- package/.scannerwork/scanner-report/symbols-25.pb +14 -102
- package/.scannerwork/scanner-report/symbols-26.pb +485 -35
- package/.scannerwork/scanner-report/symbols-27.pb +116 -17
- package/.scannerwork/scanner-report/symbols-28.pb +97 -69
- package/.scannerwork/scanner-report/symbols-29.pb +97 -111
- package/.scannerwork/scanner-report/symbols-30.pb +42 -44
- package/.scannerwork/scanner-report/symbols-31.pb +68 -1253
- package/.scannerwork/scanner-report/symbols-32.pb +9 -76
- package/.scannerwork/scanner-report/symbols-33.pb +85 -9
- package/.scannerwork/scanner-report/symbols-34.pb +441 -365
- package/.scannerwork/scanner-report/symbols-35.pb +26 -27
- package/.scannerwork/scanner-report/symbols-36.pb +36 -0
- package/.scannerwork/scanner-report/symbols-38.pb +45 -0
- package/.scannerwork/scanner-report/symbols-39.pb +112 -0
- package/.scannerwork/scanner-report/symbols-40.pb +1254 -0
- package/.scannerwork/scanner-report/symbols-42.pb +418 -0
- package/.scannerwork/scanner-report/symbols-48.pb +153 -0
- package/.scannerwork/scanner-report/symbols-49.pb +176 -149
- package/.scannerwork/scanner-report/symbols-50.pb +30 -180
- package/.scannerwork/scanner-report/symbols-52.pb +15 -0
- package/.scannerwork/scanner-report/symbols-53.pb +20 -126
- package/.scannerwork/scanner-report/symbols-54.pb +354 -20
- package/.scannerwork/scanner-report/symbols-55.pb +41 -143
- package/.scannerwork/scanner-report/symbols-56.pb +18 -33
- package/.scannerwork/scanner-report/symbols-57.pb +30 -18
- package/.scannerwork/scanner-report/symbols-58.pb +45 -14
- package/.scannerwork/scanner-report/symbols-59.pb +41 -58
- package/.scannerwork/scanner-report/symbols-61.pb +122 -42
- package/.scannerwork/scanner-report/symbols-62.pb +33 -42
- package/.scannerwork/scanner-report/symbols-63.pb +58 -41
- package/.scannerwork/scanner-report/symbols-64.pb +144 -30
- package/.scannerwork/scanner-report/symbols-7.pb +28 -0
- package/.scannerwork/scanner-report/syntax-highlightings-10.pb +48 -0
- package/.scannerwork/scanner-report/syntax-highlightings-2.pb +938 -180
- package/.scannerwork/scanner-report/syntax-highlightings-22.pb +118 -183
- package/.scannerwork/scanner-report/syntax-highlightings-23.pb +74 -14
- package/.scannerwork/scanner-report/syntax-highlightings-24.pb +28 -19
- package/.scannerwork/scanner-report/syntax-highlightings-25.pb +21 -194
- package/.scannerwork/scanner-report/syntax-highlightings-26.pb +622 -58
- package/.scannerwork/scanner-report/syntax-highlightings-27.pb +98 -27
- package/.scannerwork/scanner-report/syntax-highlightings-28.pb +147 -70
- package/.scannerwork/scanner-report/syntax-highlightings-29.pb +189 -96
- package/.scannerwork/scanner-report/syntax-highlightings-30.pb +47 -75
- package/.scannerwork/scanner-report/syntax-highlightings-31.pb +64 -846
- package/.scannerwork/scanner-report/syntax-highlightings-32.pb +11 -119
- package/.scannerwork/scanner-report/syntax-highlightings-33.pb +158 -15
- package/.scannerwork/scanner-report/syntax-highlightings-34.pb +510 -211
- package/.scannerwork/scanner-report/syntax-highlightings-35.pb +33 -103
- package/.scannerwork/scanner-report/syntax-highlightings-36.pb +95 -0
- package/.scannerwork/scanner-report/syntax-highlightings-37.pb +48 -3737
- package/.scannerwork/scanner-report/syntax-highlightings-38.pb +99 -938
- package/.scannerwork/scanner-report/syntax-highlightings-39.pb +223 -0
- package/.scannerwork/scanner-report/syntax-highlightings-40.pb +536 -3396
- package/.scannerwork/scanner-report/syntax-highlightings-42.pb +331 -0
- package/.scannerwork/scanner-report/syntax-highlightings-48.pb +214 -0
- package/.scannerwork/scanner-report/syntax-highlightings-49.pb +138 -127
- package/.scannerwork/scanner-report/syntax-highlightings-5.pb +3736 -171
- package/.scannerwork/scanner-report/syntax-highlightings-50.pb +78 -200
- package/.scannerwork/scanner-report/syntax-highlightings-51.pb +55 -3722
- package/.scannerwork/scanner-report/syntax-highlightings-52.pb +54 -0
- package/.scannerwork/scanner-report/syntax-highlightings-53.pb +29 -178
- package/.scannerwork/scanner-report/syntax-highlightings-54.pb +250 -29
- package/.scannerwork/scanner-report/syntax-highlightings-55.pb +39 -204
- package/.scannerwork/scanner-report/syntax-highlightings-56.pb +17 -96
- package/.scannerwork/scanner-report/syntax-highlightings-57.pb +80 -17
- package/.scannerwork/scanner-report/syntax-highlightings-58.pb +62 -21
- package/.scannerwork/scanner-report/syntax-highlightings-59.pb +79 -96
- package/.scannerwork/scanner-report/syntax-highlightings-6.pb +3487 -398
- package/.scannerwork/scanner-report/syntax-highlightings-61.pb +168 -50
- package/.scannerwork/scanner-report/syntax-highlightings-62.pb +90 -39
- package/.scannerwork/scanner-report/syntax-highlightings-63.pb +96 -79
- package/.scannerwork/scanner-report/syntax-highlightings-64.pb +208 -78
- package/.scannerwork/scanner-report/syntax-highlightings-66.pb +3661 -199
- package/.scannerwork/scanner-report/syntax-highlightings-67.pb +445 -3544
- package/.scannerwork/scanner-report/syntax-highlightings-7.pb +138 -0
- package/.scannerwork/scanner-report/syntax-highlightings-9.pb +3749 -0
- package/CHANGES.md +3 -0
- package/package.json +4 -4
- package/test-14-results.xml +153 -153
- package/test-16-results.xml +164 -164
- package/test-18-results.xml +147 -147
- package/test-19-results.xml +167 -167
- package/test-iam-18-results.xml +50 -50
- package/.scannerwork/scanner-report/changesets-18.pb +0 -1
- package/.scannerwork/scanner-report/changesets-19.pb +0 -1
- package/.scannerwork/scanner-report/changesets-2.pb +0 -1
- package/.scannerwork/scanner-report/changesets-20.pb +0 -1
- package/.scannerwork/scanner-report/changesets-21.pb +0 -1
- package/.scannerwork/scanner-report/changesets-3.pb +0 -1
- package/.scannerwork/scanner-report/changesets-4.pb +0 -1
- package/.scannerwork/scanner-report/changesets-5.pb +0 -1
- package/.scannerwork/scanner-report/changesets-6.pb +0 -0
- package/.scannerwork/scanner-report/changesets-66.pb +0 -1
- package/.scannerwork/scanner-report/changesets-68.pb +0 -1
- package/.scannerwork/scanner-report/changesets-69.pb +0 -1
- package/.scannerwork/scanner-report/changesets-70.pb +0 -1
- package/.scannerwork/scanner-report/component-18.pb +0 -1
- package/.scannerwork/scanner-report/component-19.pb +0 -1
- package/.scannerwork/scanner-report/component-20.pb +0 -1
- package/.scannerwork/scanner-report/component-21.pb +0 -1
- package/.scannerwork/scanner-report/component-3.pb +0 -1
- package/.scannerwork/scanner-report/component-4.pb +0 -1
- package/.scannerwork/scanner-report/component-68.pb +0 -1
- package/.scannerwork/scanner-report/component-69.pb +0 -1
- package/.scannerwork/scanner-report/component-70.pb +0 -1
- package/.scannerwork/scanner-report/coverages-18.pb +0 -0
- package/.scannerwork/scanner-report/coverages-2.pb +0 -0
- package/.scannerwork/scanner-report/coverages-20.pb +0 -0
- package/.scannerwork/scanner-report/coverages-21.pb +0 -0
- package/.scannerwork/scanner-report/coverages-4.pb +0 -0
- package/.scannerwork/scanner-report/coverages-5.pb +0 -0
- package/.scannerwork/scanner-report/coverages-6.pb +0 -0
- package/.scannerwork/scanner-report/coverages-66.pb +0 -0
- package/.scannerwork/scanner-report/coverages-68.pb +0 -0
- package/.scannerwork/scanner-report/duplications-5.pb +0 -3
- package/.scannerwork/scanner-report/duplications-6.pb +0 -2
- package/.scannerwork/scanner-report/measures-18.pb +0 -0
- package/.scannerwork/scanner-report/measures-19.pb +0 -0
- package/.scannerwork/scanner-report/measures-20.pb +0 -0
- package/.scannerwork/scanner-report/measures-21.pb +0 -0
- package/.scannerwork/scanner-report/measures-4.pb +0 -0
- package/.scannerwork/scanner-report/measures-68.pb +0 -0
- package/.scannerwork/scanner-report/measures-69.pb +0 -0
- package/.scannerwork/scanner-report/measures-70.pb +0 -0
- package/.scannerwork/scanner-report/source-18.txt +0 -63
- package/.scannerwork/scanner-report/source-20.txt +0 -92
- package/.scannerwork/scanner-report/source-21.txt +0 -47
- package/.scannerwork/scanner-report/source-4.txt +0 -366
- package/.scannerwork/scanner-report/source-68.txt +0 -77
- package/.scannerwork/scanner-report/source-69.txt +0 -56
- package/.scannerwork/scanner-report/source-70.txt +0 -418
- package/.scannerwork/scanner-report/symbols-18.pb +0 -43
- package/.scannerwork/scanner-report/symbols-2.pb +0 -85
- package/.scannerwork/scanner-report/symbols-20.pb +0 -60
- package/.scannerwork/scanner-report/symbols-21.pb +0 -27
- package/.scannerwork/scanner-report/symbols-4.pb +0 -494
- package/.scannerwork/scanner-report/symbols-5.pb +0 -97
- package/.scannerwork/scanner-report/symbols-6.pb +0 -486
- package/.scannerwork/scanner-report/symbols-66.pb +0 -354
- package/.scannerwork/scanner-report/symbols-68.pb +0 -30
- package/.scannerwork/scanner-report/syntax-highlightings-18.pb +0 -82
- package/.scannerwork/scanner-report/syntax-highlightings-19.pb +0 -59
- package/.scannerwork/scanner-report/syntax-highlightings-20.pb +0 -110
- package/.scannerwork/scanner-report/syntax-highlightings-21.pb +0 -68
- package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -630
- package/.scannerwork/scanner-report/syntax-highlightings-68.pb +0 -103
- package/.scannerwork/scanner-report/syntax-highlightings-69.pb +0 -82
- package/.scannerwork/scanner-report/syntax-highlightings-70.pb +0 -648
- /package/.scannerwork/scanner-report/{coverages-19.pb → coverages-37.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-3.pb → coverages-41.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-69.pb → coverages-51.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-70.pb → coverages-67.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-18.pb → duplications-33.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-19.pb → duplications-36.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-2.pb → duplications-37.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-20.pb → duplications-38.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-21.pb → duplications-39.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-4.pb → duplications-40.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-3.pb → duplications-41.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-66.pb → duplications-51.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-68.pb → duplications-52.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-69.pb → duplications-67.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-70.pb → duplications-7.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-29.pb → issues-27.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-4.pb → issues-34.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-21.pb → issues-35.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-3.pb → issues-41.pb} +0 -0
- /package/.scannerwork/scanner-report/{measures-3.pb → measures-41.pb} +0 -0
- /package/.scannerwork/scanner-report/{source-3.txt → source-41.txt} +0 -0
- /package/.scannerwork/scanner-report/{symbols-19.pb → symbols-37.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-3.pb → symbols-41.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-69.pb → symbols-51.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-70.pb → symbols-67.pb} +0 -0
- /package/.scannerwork/scanner-report/{syntax-highlightings-3.pb → syntax-highlightings-41.pb} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright © 2017 IBM Corp. All rights reserved.
|
|
1
|
+
// Copyright © 2017, 2021 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,24 +12,131 @@
|
|
|
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
18
|
const assert = require('assert');
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
describe('#unit
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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(done) {
|
|
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
|
+
done();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('respects the COUCH_DATABASE env variable', function(done) {
|
|
43
|
+
process.env.COUCH_DATABASE = 'mydb';
|
|
44
|
+
const config = {};
|
|
45
|
+
applyEnvVars(config);
|
|
46
|
+
assert.strictEqual(typeof config.db, 'string');
|
|
47
|
+
assert.strictEqual(config.db, process.env.COUCH_DATABASE);
|
|
48
|
+
done();
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('respects the COUCH_BUFFER_SIZE env variable', function(done) {
|
|
52
|
+
process.env.COUCH_BUFFER_SIZE = '1000';
|
|
53
|
+
const config = {};
|
|
54
|
+
applyEnvVars(config);
|
|
55
|
+
assert.strictEqual(typeof config.bufferSize, 'number');
|
|
56
|
+
assert.strictEqual(config.bufferSize, 1000);
|
|
57
|
+
done();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('respects the COUCH_PARALLELISM env variable', function(done) {
|
|
61
|
+
process.env.COUCH_PARALLELISM = '20';
|
|
62
|
+
const config = {};
|
|
63
|
+
applyEnvVars(config);
|
|
64
|
+
assert.strictEqual(typeof config.parallelism, 'number');
|
|
65
|
+
assert.strictEqual(config.parallelism, 20);
|
|
66
|
+
done();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('respects the COUCH_REQUEST_TIMEOUT env variable', function(done) {
|
|
70
|
+
process.env.COUCH_REQUEST_TIMEOUT = '10000';
|
|
71
|
+
const config = {};
|
|
72
|
+
applyEnvVars(config);
|
|
73
|
+
assert.strictEqual(typeof config.requestTimeout, 'number');
|
|
74
|
+
assert.strictEqual(config.requestTimeout, 10000);
|
|
75
|
+
done();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('respects the CLOUDANT_IAM_API_KEY env variable', function(done) {
|
|
79
|
+
const key = 'ABC123-ZYX987_cba789-xyz321';
|
|
80
|
+
process.env.CLOUDANT_IAM_API_KEY = key;
|
|
81
|
+
const config = {};
|
|
82
|
+
applyEnvVars(config);
|
|
83
|
+
assert.strictEqual(typeof config.iamApiKey, 'string');
|
|
84
|
+
assert.strictEqual(config.iamApiKey, key);
|
|
85
|
+
done();
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('respects the CLOUDANT_IAM_TOKEN_URL env variable', function(done) {
|
|
89
|
+
const u = 'https://testhost.example:1234/identity/token';
|
|
90
|
+
process.env.CLOUDANT_IAM_TOKEN_URL = u;
|
|
91
|
+
const config = {};
|
|
92
|
+
applyEnvVars(config);
|
|
93
|
+
assert.strictEqual(typeof config.iamTokenUrl, 'string');
|
|
94
|
+
assert.strictEqual(config.iamTokenUrl, u);
|
|
95
|
+
done();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('respects the COUCH_LOG env variable', function(done) {
|
|
99
|
+
process.env.COUCH_LOG = 'my.log';
|
|
100
|
+
const config = {};
|
|
101
|
+
applyEnvVars(config);
|
|
102
|
+
assert.strictEqual(typeof config.log, 'string');
|
|
103
|
+
assert.strictEqual(config.log, process.env.COUCH_LOG);
|
|
104
|
+
done();
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('respects the COUCH_RESUME env variable', function(done) {
|
|
108
|
+
process.env.COUCH_RESUME = 'true';
|
|
109
|
+
const config = {};
|
|
110
|
+
applyEnvVars(config);
|
|
111
|
+
assert.strictEqual(typeof config.resume, 'boolean');
|
|
112
|
+
assert.strictEqual(config.resume, true);
|
|
113
|
+
done();
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('respects the COUCH_OUTPUT env variable', function(done) {
|
|
117
|
+
process.env.COUCH_OUTPUT = 'myfile.txt';
|
|
118
|
+
const config = {};
|
|
119
|
+
applyEnvVars(config);
|
|
120
|
+
assert.strictEqual(typeof config.output, 'string');
|
|
121
|
+
assert.strictEqual(config.output, process.env.COUCH_OUTPUT);
|
|
122
|
+
done();
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('respects the COUCH_MODE env variable', function(done) {
|
|
126
|
+
process.env.COUCH_MODE = 'shallow';
|
|
127
|
+
const config = {};
|
|
128
|
+
applyEnvVars(config);
|
|
129
|
+
assert.strictEqual(typeof config.mode, 'string');
|
|
130
|
+
assert.strictEqual(config.mode, 'shallow');
|
|
131
|
+
done();
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it('respects the COUCH_QUIET env variable', function(done) {
|
|
135
|
+
process.env.COUCH_QUIET = 'true';
|
|
136
|
+
const config = {};
|
|
137
|
+
applyEnvVars(config);
|
|
138
|
+
assert.strictEqual(typeof config.quiet, 'boolean');
|
|
139
|
+
assert.strictEqual(config.quiet, true);
|
|
140
|
+
done();
|
|
34
141
|
});
|
|
35
142
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright ©
|
|
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,89 +12,120 @@
|
|
|
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
16
|
'use strict';
|
|
16
17
|
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// check revs same in docs common to both dbs
|
|
41
|
-
const partitionSize = 500;
|
|
42
|
-
const batches = chunk(union(allDocs1, allDocs2), partitionSize);
|
|
43
|
-
|
|
44
|
-
const missingRevsInDb2 = await getMissingRevs(client, database1, database2, batches);
|
|
45
|
-
const missingRevsInDb1 = await getMissingRevs(client, database2, database1, batches);
|
|
46
|
-
|
|
47
|
-
databasesSame = databasesSame && isEmpty(missingRevsInDb1) && isEmpty(missingRevsInDb2);
|
|
48
|
-
|
|
49
|
-
if (!databasesSame) {
|
|
50
|
-
console.log('Missing revs in db 1:' + JSON.stringify(missingRevsInDb1));
|
|
51
|
-
console.log('Missing revs in db 2:' + JSON.stringify(missingRevsInDb2));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return databasesSame;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const getMissingRevs = async(client, databaseName1, databaseName2, batcheses) => {
|
|
58
|
-
const fakeRevisionId = '9999-a';
|
|
59
|
-
|
|
60
|
-
const missing = {};
|
|
61
|
-
|
|
62
|
-
// look in db1 - use a fake revision ID to fetch all leaf revisions
|
|
63
|
-
|
|
64
|
-
for (const batches of batcheses) {
|
|
65
|
-
const documentRevisions = {};
|
|
66
|
-
batches.forEach(id => (documentRevisions[id] = [fakeRevisionId]));
|
|
18
|
+
const fs = require('fs');
|
|
19
|
+
const u = require('./citestutils.js');
|
|
20
|
+
|
|
21
|
+
[{ useApi: true }, { useApi: false }].forEach(function(params) {
|
|
22
|
+
describe(u.scenario('Basic backup and restore', params), function() {
|
|
23
|
+
it('should backup animaldb to a file correctly', function(done) {
|
|
24
|
+
// Allow up to 40 s to backup and compare (it should be much faster)!
|
|
25
|
+
u.setTimeout(this, 40);
|
|
26
|
+
const actualBackup = `./${this.fileName}`;
|
|
27
|
+
// Create a file and backup to it
|
|
28
|
+
const output = fs.createWriteStream(actualBackup);
|
|
29
|
+
output.on('open', function() {
|
|
30
|
+
u.testBackup(params, 'animaldb', output, function(err) {
|
|
31
|
+
if (err) {
|
|
32
|
+
done(err);
|
|
33
|
+
} else {
|
|
34
|
+
u.readSortAndDeepEqual(actualBackup, './test/fixtures/animaldb_expected.json', done);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
67
39
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
40
|
+
it('should restore animaldb to a database correctly', function(done) {
|
|
41
|
+
// Allow up to 60 s to restore and compare (again it should be faster)!
|
|
42
|
+
u.setTimeout(this, 60);
|
|
43
|
+
const input = fs.createReadStream('./test/fixtures/animaldb_expected.json');
|
|
44
|
+
const dbName = this.dbName;
|
|
45
|
+
input.on('open', function() {
|
|
46
|
+
u.testRestore(params, input, dbName, function(err) {
|
|
47
|
+
if (err) {
|
|
48
|
+
done(err);
|
|
49
|
+
} else {
|
|
50
|
+
u.dbCompare('animaldb', dbName, done);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
77
54
|
});
|
|
78
|
-
}
|
|
79
|
-
return missing;
|
|
80
|
-
};
|
|
81
55
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
};
|
|
56
|
+
it('should execute a shallow mode backup successfully', function(done) {
|
|
57
|
+
// Allow 30 s
|
|
58
|
+
u.setTimeout(this, 30);
|
|
59
|
+
const actualBackup = `./${this.fileName}`;
|
|
60
|
+
const output = fs.createWriteStream(actualBackup);
|
|
61
|
+
// Add the shallow mode option
|
|
62
|
+
const p = u.p(params, { opts: { mode: 'shallow' } });
|
|
63
|
+
output.on('open', function() {
|
|
64
|
+
u.testBackup(p, 'animaldb', output, function(err) {
|
|
65
|
+
if (err) {
|
|
66
|
+
done(err);
|
|
67
|
+
} else {
|
|
68
|
+
u.readSortAndDeepEqual(actualBackup, './test/fixtures/animaldb_expected_shallow.json', done);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
});
|
|
97
73
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
74
|
+
describe(u.scenario('Buffer size tests', params), function() {
|
|
75
|
+
it('should backup/restore animaldb with the same buffer size', function(done) {
|
|
76
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
77
|
+
u.setTimeout(this, 60);
|
|
78
|
+
const actualBackup = `./${this.fileName}`;
|
|
79
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
80
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 1 } });
|
|
81
|
+
u.testBackupAndRestoreViaFile(p, 'animaldb', actualBackup, this.dbName, done);
|
|
82
|
+
});
|
|
83
|
+
it('should backup/restore animaldb with backup buffer > restore buffer', function(done) {
|
|
84
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
85
|
+
u.setTimeout(this, 60);
|
|
86
|
+
const actualBackup = `./${this.fileName}`;
|
|
87
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
88
|
+
const dbName = this.dbName;
|
|
89
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 2 } }); // backup
|
|
90
|
+
const q = u.p(params, { opts: { bufferSize: 1 } }); // restore
|
|
91
|
+
u.testBackupToFile(p, 'animaldb', actualBackup, function(err) {
|
|
92
|
+
if (err) {
|
|
93
|
+
done(err);
|
|
94
|
+
} else {
|
|
95
|
+
// restore
|
|
96
|
+
u.testRestoreFromFile(q, actualBackup, dbName, function(err) {
|
|
97
|
+
if (!err) {
|
|
98
|
+
u.dbCompare('animaldb', dbName, done);
|
|
99
|
+
} else {
|
|
100
|
+
done(err);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
it('should backup/restore animaldb with backup buffer < restore buffer', function(done) {
|
|
107
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
108
|
+
u.setTimeout(this, 60);
|
|
109
|
+
const actualBackup = `./${this.fileName}`;
|
|
110
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
111
|
+
const dbName = this.dbName;
|
|
112
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 1 } }); // backup
|
|
113
|
+
const q = u.p(params, { opts: { bufferSize: 2 } }); // restore
|
|
114
|
+
u.testBackupToFile(p, 'animaldb', actualBackup, function(err) {
|
|
115
|
+
if (err) {
|
|
116
|
+
done(err);
|
|
117
|
+
} else {
|
|
118
|
+
// restore
|
|
119
|
+
u.testRestoreFromFile(q, actualBackup, dbName, function(err) {
|
|
120
|
+
if (!err) {
|
|
121
|
+
u.dbCompare('animaldb', dbName, done);
|
|
122
|
+
} else {
|
|
123
|
+
done(err);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright © 2017,
|
|
1
|
+
// Copyright © 2017, 2022 IBM Corp. All rights reserved.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -12,131 +12,134 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
/* global describe it
|
|
15
|
+
/* global describe it beforeEach */
|
|
16
16
|
'use strict';
|
|
17
17
|
|
|
18
18
|
const assert = require('assert');
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
applyEnvVars(config);
|
|
46
|
-
assert.strictEqual(typeof config.db, 'string');
|
|
47
|
-
assert.strictEqual(config.db, process.env.COUCH_DATABASE);
|
|
48
|
-
done();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('respects the COUCH_BUFFER_SIZE env variable', function(done) {
|
|
52
|
-
process.env.COUCH_BUFFER_SIZE = '1000';
|
|
53
|
-
const config = {};
|
|
54
|
-
applyEnvVars(config);
|
|
55
|
-
assert.strictEqual(typeof config.bufferSize, 'number');
|
|
56
|
-
assert.strictEqual(config.bufferSize, 1000);
|
|
57
|
-
done();
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
it('respects the COUCH_PARALLELISM env variable', function(done) {
|
|
61
|
-
process.env.COUCH_PARALLELISM = '20';
|
|
62
|
-
const config = {};
|
|
63
|
-
applyEnvVars(config);
|
|
64
|
-
assert.strictEqual(typeof config.parallelism, 'number');
|
|
65
|
-
assert.strictEqual(config.parallelism, 20);
|
|
66
|
-
done();
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it('respects the COUCH_REQUEST_TIMEOUT env variable', function(done) {
|
|
70
|
-
process.env.COUCH_REQUEST_TIMEOUT = '10000';
|
|
71
|
-
const config = {};
|
|
72
|
-
applyEnvVars(config);
|
|
73
|
-
assert.strictEqual(typeof config.requestTimeout, 'number');
|
|
74
|
-
assert.strictEqual(config.requestTimeout, 10000);
|
|
75
|
-
done();
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('respects the CLOUDANT_IAM_API_KEY env variable', function(done) {
|
|
79
|
-
const key = 'ABC123-ZYX987_cba789-xyz321';
|
|
80
|
-
process.env.CLOUDANT_IAM_API_KEY = key;
|
|
81
|
-
const config = {};
|
|
82
|
-
applyEnvVars(config);
|
|
83
|
-
assert.strictEqual(typeof config.iamApiKey, 'string');
|
|
84
|
-
assert.strictEqual(config.iamApiKey, key);
|
|
85
|
-
done();
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it('respects the CLOUDANT_IAM_TOKEN_URL env variable', function(done) {
|
|
89
|
-
const u = 'https://testhost.example:1234/identity/token';
|
|
90
|
-
process.env.CLOUDANT_IAM_TOKEN_URL = u;
|
|
91
|
-
const config = {};
|
|
92
|
-
applyEnvVars(config);
|
|
93
|
-
assert.strictEqual(typeof config.iamTokenUrl, 'string');
|
|
94
|
-
assert.strictEqual(config.iamTokenUrl, u);
|
|
95
|
-
done();
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it('respects the COUCH_LOG env variable', function(done) {
|
|
99
|
-
process.env.COUCH_LOG = 'my.log';
|
|
100
|
-
const config = {};
|
|
101
|
-
applyEnvVars(config);
|
|
102
|
-
assert.strictEqual(typeof config.log, 'string');
|
|
103
|
-
assert.strictEqual(config.log, process.env.COUCH_LOG);
|
|
104
|
-
done();
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it('respects the COUCH_RESUME env variable', function(done) {
|
|
108
|
-
process.env.COUCH_RESUME = 'true';
|
|
109
|
-
const config = {};
|
|
110
|
-
applyEnvVars(config);
|
|
111
|
-
assert.strictEqual(typeof config.resume, 'boolean');
|
|
112
|
-
assert.strictEqual(config.resume, true);
|
|
113
|
-
done();
|
|
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();
|
|
114
45
|
});
|
|
115
46
|
|
|
116
|
-
it('
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
+
});
|
|
123
78
|
});
|
|
124
79
|
|
|
125
|
-
it('
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
+
});
|
|
132
114
|
});
|
|
133
115
|
|
|
134
|
-
it('
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
+
});
|
|
141
144
|
});
|
|
142
145
|
});
|