mirror of
https://github.com/bakustarver/rpgmakermlinux-cicpoffs.git
synced 2025-07-05 16:15:17 +02:00
77 lines
2 KiB
JavaScript
77 lines
2 KiB
JavaScript
// this test makes sure that various things get enoent, instead of
|
|
// some other kind of throw.
|
|
|
|
var g = require('../')
|
|
|
|
var NODE_VERSION_MAJOR_WITH_BIGINT = 10
|
|
var NODE_VERSION_MINOR_WITH_BIGINT = 5
|
|
var NODE_VERSION_PATCH_WITH_BIGINT = 0
|
|
var nodeVersion = process.versions.node.split('.')
|
|
var nodeVersionMajor = Number.parseInt(nodeVersion[0], 10)
|
|
var nodeVersionMinor = Number.parseInt(nodeVersion[1], 10)
|
|
var nodeVersionPatch = Number.parseInt(nodeVersion[2], 10)
|
|
|
|
function nodeSupportsBigInt () {
|
|
if (nodeVersionMajor > NODE_VERSION_MAJOR_WITH_BIGINT) {
|
|
return true
|
|
} else if (nodeVersionMajor === NODE_VERSION_MAJOR_WITH_BIGINT) {
|
|
if (nodeVersionMinor > NODE_VERSION_MINOR_WITH_BIGINT) {
|
|
return true
|
|
} else if (nodeVersionMinor === NODE_VERSION_MINOR_WITH_BIGINT) {
|
|
if (nodeVersionPatch >= NODE_VERSION_PATCH_WITH_BIGINT) {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
var t = require('tap')
|
|
var file = 'this file does not exist even a little bit'
|
|
var methods = [
|
|
['open', 'r'],
|
|
['readFile'],
|
|
['stat'],
|
|
['lstat'],
|
|
['utimes', new Date(), new Date()],
|
|
['readdir']
|
|
]
|
|
|
|
// any version > v6 can do readdir(path, options, cb)
|
|
if (process.version.match(/^v([6-9]|[1-9][0-9])\./)) {
|
|
methods.push(['readdir', {}])
|
|
}
|
|
|
|
// any version > v10.5 can do stat(path, options, cb)
|
|
if (nodeSupportsBigInt()) {
|
|
methods.push(['stat', {}])
|
|
methods.push(['lstat', {}])
|
|
}
|
|
|
|
|
|
t.plan(methods.length)
|
|
methods.forEach(function (method) {
|
|
t.test(method[0], runTest(method))
|
|
})
|
|
|
|
function runTest (args) { return function (t) {
|
|
var method = args.shift()
|
|
args.unshift(file)
|
|
var methodSync = method + 'Sync'
|
|
t.type(g[methodSync], 'function')
|
|
t.throws(function () {
|
|
g[methodSync].apply(g, args)
|
|
}, { code: 'ENOENT' })
|
|
// add the callback
|
|
args.push(verify(t))
|
|
t.type(g[method], 'function')
|
|
t.doesNotThrow(function () {
|
|
g[method].apply(g, args)
|
|
})
|
|
}}
|
|
|
|
function verify (t) { return function (er) {
|
|
t.type(er, Error)
|
|
t.equal(er.code, 'ENOENT')
|
|
t.end()
|
|
}}
|