145 lines
3.2 KiB
JavaScript
145 lines
3.2 KiB
JavaScript
'use strict'
|
|
const TestRunner = require('test-runner')
|
|
const fsThen = require('../')
|
|
const fs = require('fs')
|
|
const runner = new TestRunner()
|
|
const rimraf = require('rimraf')
|
|
const a = require('assert')
|
|
|
|
rimraf.sync('tmp')
|
|
fsThen.mkdirSync('tmp')
|
|
|
|
runner.test('.writeFile(): good', function () {
|
|
return fsThen.writeFile('tmp/one', 'one')
|
|
.then(() => {
|
|
return fs.existsSync('tmp/one')
|
|
})
|
|
})
|
|
|
|
runner.test('.writeFile(): bad', function () {
|
|
return fsThen.writeFile('asfsaffsa/one', 'one')
|
|
.then(() => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if (err.code === 'ENOENT') {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
|
|
runner.test('.readFile(): good', function () {
|
|
return fsThen.readFile('test/fixture/file.txt', 'utf-8')
|
|
.then(content => {
|
|
a.strictEqual(content, 'test\n')
|
|
})
|
|
})
|
|
|
|
runner.test('.readFile(): bad', function () {
|
|
return fsThen.readFile('lidnfklgeroasosn')
|
|
.then(content => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if (err.code === 'ENOENT') {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
|
|
runner.test('.readdir(): good', function () {
|
|
return fsThen.readdir('test/fixture')
|
|
.then(files => {
|
|
a.deepStrictEqual(files, [ 'file.txt' ])
|
|
})
|
|
})
|
|
|
|
runner.test('.readdir(): bad', function () {
|
|
return fsThen.readdir('lidnfklgeroasosn')
|
|
.then(files => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if (err.code === 'ENOENT') {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
|
|
runner.test('.mkdir() and .rmdir(): good', function () {
|
|
return fsThen.mkdir('tmp/deleteMe')
|
|
.then(() => {
|
|
a.strictEqual(fs.existsSync('tmp/deleteMe'), true)
|
|
})
|
|
.then(() => {
|
|
return fsThen.rmdir('tmp/deleteMe')
|
|
.then(() => {
|
|
a.strictEqual(fs.existsSync('tmp/deleteMe'), false)
|
|
})
|
|
})
|
|
})
|
|
|
|
runner.test('.mkdir(): bad', function () {
|
|
return fsThen.mkdir()
|
|
.then(files => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if ((err instanceof TypeError)) {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
|
|
runner.test('.rmdir(): bad', function () {
|
|
return fsThen.rmdir()
|
|
.then(files => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if ((err instanceof TypeError)) {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
|
|
runner.test('everything else exists', function () {
|
|
a.ok(fsThen.chown && fsThen.lstat && fsThen.symlink && fs.watch)
|
|
})
|
|
|
|
runner.test('.unlink(): good', function () {
|
|
const filename = 'tmp/deleteThisFile'
|
|
return fsThen.writeFile(filename, '')
|
|
.then(() => {
|
|
a.strictEqual(fs.existsSync(filename), true)
|
|
return fsThen.unlink(filename)
|
|
.then(() => {
|
|
a.strictEqual(fs.existsSync(filename), false)
|
|
})
|
|
})
|
|
})
|
|
|
|
runner.test('.unlink(): bad', function () {
|
|
return fsThen.unlink('lidnfklgeroasosn')
|
|
.then(content => {
|
|
throw new Error("shouldn't reach here")
|
|
})
|
|
.catch(err => {
|
|
if (err.code === 'ENOENT') {
|
|
return
|
|
} else {
|
|
throw err
|
|
}
|
|
})
|
|
})
|