24 lines
535 B
JavaScript
24 lines
535 B
JavaScript
import fs from 'fs'
|
|
import path from 'path'
|
|
|
|
import rimraf from 'rimraf'
|
|
|
|
let id = 0
|
|
|
|
export default function (callback) {
|
|
return new Promise((resolve) => {
|
|
const workerId = `${process.env.JEST_WORKER_ID}-${id++}`
|
|
const tmpPath = path.resolve(__dirname, `../__tmp_${workerId}`)
|
|
const currentPath = process.cwd()
|
|
|
|
rimraf.sync(tmpPath)
|
|
fs.mkdirSync(tmpPath)
|
|
process.chdir(tmpPath)
|
|
|
|
callback().then(() => {
|
|
process.chdir(currentPath)
|
|
rimraf(tmpPath, resolve)
|
|
})
|
|
})
|
|
}
|