summaryrefslogtreecommitdiff
path: root/deps/npm/test/lib/utils/cleanup-log-files.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/lib/utils/cleanup-log-files.js')
-rw-r--r--deps/npm/test/lib/utils/cleanup-log-files.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/deps/npm/test/lib/utils/cleanup-log-files.js b/deps/npm/test/lib/utils/cleanup-log-files.js
new file mode 100644
index 0000000000..ee2c11e62a
--- /dev/null
+++ b/deps/npm/test/lib/utils/cleanup-log-files.js
@@ -0,0 +1,80 @@
+const t = require('tap')
+
+const requireInject = require('require-inject')
+const glob = require('glob')
+const rimraf = require('rimraf')
+const mocks = { glob, rimraf }
+const cleanup = requireInject('../../../lib/utils/cleanup-log-files.js', {
+ glob: (...args) => mocks.glob(...args),
+ rimraf: (...args) => mocks.rimraf(...args)
+})
+const { basename } = require('path')
+
+const fs = require('fs')
+
+t.test('clean up those files', t => {
+ const cache = t.testdir({
+ _logs: {
+ '1-debug.log': 'hello',
+ '2-debug.log': 'hello',
+ '3-debug.log': 'hello',
+ '4-debug.log': 'hello',
+ '5-debug.log': 'hello'
+ }
+ })
+ const warn = (...warning) => t.fail('failed cleanup', { warning })
+ return cleanup(cache, 3, warn).then(() => {
+ t.strictSame(fs.readdirSync(cache + '/_logs').sort(), [
+ '3-debug.log',
+ '4-debug.log',
+ '5-debug.log'
+ ])
+ })
+})
+
+t.test('nothing to clean up', t => {
+ const cache = t.testdir({
+ _logs: {
+ '4-debug.log': 'hello',
+ '5-debug.log': 'hello'
+ }
+ })
+ const warn = (...warning) => t.fail('failed cleanup', { warning })
+ return cleanup(cache, 3, warn).then(() => {
+ t.strictSame(fs.readdirSync(cache + '/_logs').sort(), [
+ '4-debug.log',
+ '5-debug.log'
+ ])
+ })
+})
+
+t.test('glob fail', t => {
+ mocks.glob = (pattern, cb) => cb(new Error('no globbity'))
+ t.teardown(() => mocks.glob = glob)
+ const cache = t.testdir({})
+ const warn = (...warning) => t.fail('failed cleanup', { warning })
+ return cleanup(cache, 3, warn)
+})
+
+t.test('rimraf fail', t => {
+ mocks.rimraf = (file, cb) => cb(new Error('youll never rimraf me!'))
+ t.teardown(() => mocks.rimraf = rimraf)
+
+ const cache = t.testdir({
+ _logs: {
+ '1-debug.log': 'hello',
+ '2-debug.log': 'hello',
+ '3-debug.log': 'hello',
+ '4-debug.log': 'hello',
+ '5-debug.log': 'hello'
+ }
+ })
+ const warnings = []
+ const warn = (...warning) => warnings.push(basename(warning[2]))
+ return cleanup(cache, 3, warn).then(() => {
+ t.strictSame(warnings.sort((a, b) => a.localeCompare(b)), [
+ '1-debug.log',
+ '2-debug.log'
+ ])
+ })
+})