Skip to content

Commit

Permalink
not a food test
Browse files Browse the repository at this point in the history
  • Loading branch information
bluelovers committed Mar 8, 2017
1 parent 708956c commit 436a674
Showing 1 changed file with 46 additions and 78 deletions.
124 changes: 46 additions & 78 deletions lib/move/__tests__/move.preserveTimestamps.test.js
Expand Up @@ -12,83 +12,51 @@ const rimraf = require('rimraf')

/* global afterEach, beforeEach, describe, it */

function createAsyncErrFn(errCode) {
const fn = function () {
fn.callCount++
const callback = arguments[arguments.length - 1]
setTimeout(() => {
const err = new Error()
err.code = errCode
callback(err)
}, 10
)
}
fn.callCount = 0
return fn
}

const originalRename = fs.rename
const originalLink = fs.link

function setUpMockFs(errCode) {
fs.rename = createAsyncErrFn(errCode)
fs.link = createAsyncErrFn(errCode)
}

function tearDownMockFs() {
fs.rename = originalRename
fs.link = originalLink
}

describe('move', () => {
let TEST_DIR

beforeEach(() => {
TEST_DIR = path.join(os.tmpdir(), 'fs-extra', 'move')

fse.emptyDirSync(TEST_DIR)

// Create fixtures:
fs.writeFileSync(path.join(TEST_DIR, 'a-file'), 'sonic the hedgehog\n')
fs.mkdirSync(path.join(TEST_DIR, 'a-folder'))
fs.writeFileSync(path.join(TEST_DIR, 'a-folder/another-file'), 'tails\n')
fs.mkdirSync(path.join(TEST_DIR, 'a-folder/another-folder'))
fs.writeFileSync(path.join(TEST_DIR, 'a-folder/another-folder/file3'), 'knuckles\n')
}
)

afterEach(done => rimraf(TEST_DIR, done))

it('should preserve timestamps', done => {
const src = `${TEST_DIR}/a-file`
const dest = `${TEST_DIR}/a-folder/another-folder/a-file-dest`

const options = {
preserveTimestamps: true
}

fs.stat(src, (srcErr, srcStat) => {
assert.ifError(srcErr)
setTimeout(() => {
fse.move(src, dest, options, err => {
assert.ifError(err)
fs.stat(dest, (descErr, destStat) => {
assert.ifError(descErr)
assert.equal(srcStat.atime.getTime(),
destStat.atime.getTime(),
`atime ${srcStat.atime} should match ${destStat.atime}`
)
assert.equal(srcStat.mtime.getTime(),
destStat.mtime.getTime(),
`mtime ${srcStat.mtime} should match ${destStat.mtime}`
)
done()
})
})
let TEST_DIR

beforeEach(() => {
TEST_DIR = path.join(os.tmpdir(), 'fs-extra', 'move')

fse.emptyDirSync(TEST_DIR)

// Create fixtures:
fs.writeFileSync(path.join(TEST_DIR, 'a-file'), 'sonic the hedgehog\n')
fs.mkdirSync(path.join(TEST_DIR, 'a-folder'))
fs.writeFileSync(path.join(TEST_DIR, 'a-folder/another-file'), 'tails\n')
fs.mkdirSync(path.join(TEST_DIR, 'a-folder/another-folder'))
fs.writeFileSync(path.join(TEST_DIR, 'a-folder/another-folder/file3'), 'knuckles\n')
})

afterEach(done => rimraf(TEST_DIR, done))

it('should preserve timestamps', done => {
const src = `${TEST_DIR}/a-file`
const dest = `${TEST_DIR}/a-folder/another-folder/a-file-dest`

const options = {
preserveTimestamps: true
}

fs.stat(src, (srcErr, srcStat) => {
assert.ifError(srcErr)
setTimeout(() => {
fse.move(src, dest, options, err => {
assert.ifError(err)
fs.stat(dest, (descErr, destStat) => {
assert.ifError(descErr)
assert.equal(srcStat.atime.getTime(),
destStat.atime.getTime(),
`atime ${srcStat.atime} should match ${destStat.atime}`
)
assert.equal(srcStat.mtime.getTime(),
destStat.mtime.getTime(),
`mtime ${srcStat.mtime} should match ${destStat.mtime}`
)
done()
})
}, 1500)
}
)

}
)
})
})
}, 1500)
})
})

0 comments on commit 436a674

Please sign in to comment.