Cypress_TS/CY_Auta_TS/automaty/node_modules/cachedir/test.js
Lukáš Kaňka ea3e372146 údržba
2023-08-15 18:35:50 +02:00

87 lines
2.5 KiB
JavaScript

/* eslint-env mocha */
const assert = require('assert')
const os = require('os')
const proxyquire = require('proxyquire')
const platforms = [
['aix', `${os.homedir()}/.cache/linusu`],
['darwin', `${os.homedir()}/Library/Caches/linusu`],
['freebsd', `${os.homedir()}/.cache/linusu`],
['linux', `${os.homedir()}/.cache/linusu`],
['netbsd', `${os.homedir()}/.cache/linusu`],
['openbsd', `${os.homedir()}/.cache/linusu`],
['sunos', `${os.homedir()}/.cache/linusu`],
['win32', `${os.homedir()}/AppData/Local/linusu/Cache`]
]
platforms.forEach((platform) => {
describe(platform[0], () => {
let cachedir
before(() => {
const os = {
platform () { return platform[0] }
}
cachedir = proxyquire('./', { os })
})
it('should give the correct path', () => {
const actual = cachedir('linusu')
const expected = platform[1]
assert.strictEqual(actual, expected)
})
if (platform[0] === 'win32') {
describe('when LOCALAPPDATA is set', () => {
it('should give the correct path', () => {
const oldLocalAppData = process.env.LOCALAPPDATA
process.env.LOCALAPPDATA = 'X:/LocalAppData'
const actual = cachedir('linusu')
process.env.LOCALAPPDATA = oldLocalAppData
const expected = 'X:/LocalAppData/linusu/Cache'
assert.strictEqual(actual, expected)
})
})
}
it('should throw on bad input', () => {
assert.throws(() => cachedir())
assert.throws(() => cachedir(''))
assert.throws(() => cachedir({}))
assert.throws(() => cachedir([]))
assert.throws(() => cachedir(null))
assert.throws(() => cachedir(1337))
assert.throws(() => cachedir('test!!'))
assert.throws(() => cachedir(undefined))
})
})
})
describe('fallback', () => {
it('should fallback to posix with warning', () => {
const originalError = console.error
try {
const logs = []
console.error = (msg) => logs.push(msg)
const os = { platform: () => 'test' }
const cachedir = proxyquire('./', { os })
const actual = cachedir('linusu')
const expected = `${os.homedir()}/.cache/linusu`
assert.strictEqual(actual, expected)
assert.deepStrictEqual(logs, [
`(node:${process.pid}) [cachedir] Warning: the platform "test" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`
])
} finally {
console.error = originalError
}
})
})