wsemi
Version:
A support package for web developer.
210 lines (172 loc) • 7.49 kB
JavaScript
import fs from 'fs'
import assert from 'assert'
import fsCreateFolder from '../src/fsCreateFolder.mjs'
import fsIsFile from '../src/fsIsFile.mjs'
import fsIsFolder from '../src/fsIsFolder.mjs'
import fsCopyFolder from '../src/fsCopyFolder.mjs'
import fsDeleteFolder from '../src/fsDeleteFolder.mjs'
describe(`fsCopyFolder`, function() {
let testSyncEmpty = async () => {
let ms = []
let fpSrc = './_test_fsCopyFolder_src'
let fpTar = './_test_fsCopyFolder_tar'
fsCreateFolder(fpSrc)
fsDeleteFolder(fpTar)
fsCreateFolder(`${fpSrc}/lay1/lay2`)
fsCreateFolder(`${fpSrc}/lay1/lay2/lay3/lay4`)
// fs.writeFileSync(`${fpSrc}/lay1/t1.txt`, 'abc', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/t2.txt`, 'def', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/t3.txt`, '中文', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/lay4/t4.txt`, '測 試', 'utf8')
let rc = fsCopyFolder(fpSrc, fpTar)
ms.push({ 'sync-empty-copy-folder': rc })
let b1 = fsIsFolder(`${fpTar}/lay1/lay2/lay3`)
ms.push({ 'sync-empty-is-folder-1': b1 })
let b2 = fsIsFolder(`${fpTar}/lay1/lay2/lay3/lay4`)
ms.push({ 'sync-empty-is-folder-2': b2 })
let b3 = fsIsFile(`${fpTar}/lay1/lay2/lay3/t3.txt`)
ms.push({ 'sync-empty-is-file-1': b3 })
let b4 = fsIsFile(`${fpTar}/lay1/lay2/lay3/lay4/t4.txt`)
ms.push({ 'sync-empty-is-file-2': b4 })
fsDeleteFolder(fpSrc)
fsDeleteFolder(fpTar)
// console.log('ms', ms)
return ms
}
let testSync = async () => {
let ms = []
let fpSrc = './_test_fsCopyFolder_src'
let fpTar = './_test_fsCopyFolder_tar'
fsCreateFolder(fpSrc)
fsCreateFolder(`${fpSrc}/lay1/lay2`)
fsCreateFolder(`${fpSrc}/lay1/lay2/lay3/lay4`)
fs.writeFileSync(`${fpSrc}/lay1/t1.txt`, 'abc', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/t2.txt`, 'def', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/t3.txt`, '中文', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/lay4/t4.txt`, '測 試', 'utf8')
let rc = fsCopyFolder(fpSrc, fpTar)
ms.push({ 'sync-copy-folder': rc })
let b1 = fsIsFolder(`${fpTar}/lay1/lay2/lay3`)
ms.push({ 'sync-is-folder-1': b1 })
let b2 = fsIsFolder(`${fpTar}/lay1/lay2/lay3/lay4`)
ms.push({ 'sync-is-folder-2': b2 })
let b3 = fsIsFile(`${fpTar}/lay1/lay2/lay3/t3.txt`)
ms.push({ 'sync-is-file-1': b3 })
let b4 = fsIsFile(`${fpTar}/lay1/lay2/lay3/lay4/t4.txt`)
ms.push({ 'sync-is-file-2': b4 })
fsDeleteFolder(fpSrc)
fsDeleteFolder(fpTar)
// console.log('ms', ms)
return ms
}
let testAsyncEmpty = async () => {
let ms = []
let fpSrc = './_test_fsCopyFolder_src'
let fpTar = './_test_fsCopyFolder_tar'
fsCreateFolder(fpSrc)
fsCreateFolder(`${fpSrc}/lay1/lay2`)
fsCreateFolder(`${fpSrc}/lay1/lay2/lay3/lay4`)
// fs.writeFileSync(`${fpSrc}/lay1/t1.txt`, 'abc', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/t2.txt`, 'def', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/t3.txt`, '中文', 'utf8')
// fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/lay4/t4.txt`, '測 試', 'utf8')
await fsCopyFolder(fpSrc, fpTar, { useSync: false })
.then((res) => {
// console.log('res', res)
ms.push({ 'async-empty-copy-folder': res })
})
.catch(() => {
// console.log('err', err)
})
let b1 = fsIsFolder(`${fpTar}/lay1/lay2/lay3`)
ms.push({ 'async-empty-is-folder-1': b1 })
let b2 = fsIsFolder(`${fpTar}/lay1/lay2/lay3/lay4`)
ms.push({ 'async-empty-is-folder-2': b2 })
let b3 = fsIsFile(`${fpTar}/lay1/lay2/lay3/t3.txt`)
ms.push({ 'async-empty-is-file-1': b3 })
let b4 = fsIsFile(`${fpTar}/lay1/lay2/lay3/lay4/t4.txt`)
ms.push({ 'async-empty-is-file-2': b4 })
fsDeleteFolder(fpSrc)
fsDeleteFolder(fpTar)
// console.log('ms', ms)
return ms
}
let testAsync = async () => {
let ms = []
let fpSrc = './_test_fsCopyFolder_src'
let fpTar = './_test_fsCopyFolder_tar'
fsCreateFolder(fpSrc)
fsCreateFolder(`${fpSrc}/lay1/lay2`)
fsCreateFolder(`${fpSrc}/lay1/lay2/lay3/lay4`)
fs.writeFileSync(`${fpSrc}/lay1/t1.txt`, 'abc', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/t2.txt`, 'def', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/t3.txt`, '中文', 'utf8')
fs.writeFileSync(`${fpSrc}/lay1/lay2/lay3/lay4/t4.txt`, '測 試', 'utf8')
await fsCopyFolder(fpSrc, fpTar, { useSync: false })
.then((res) => {
// console.log('res', res)
ms.push({ 'async-copy-folder': res })
})
.catch(() => {
// console.log('err', err)
})
let b1 = fsIsFolder(`${fpTar}/lay1/lay2/lay3`)
ms.push({ 'async-is-folder-1': b1 })
let b2 = fsIsFolder(`${fpTar}/lay1/lay2/lay3/lay4`)
ms.push({ 'async-is-folder-2': b2 })
let b3 = fsIsFile(`${fpTar}/lay1/lay2/lay3/t3.txt`)
ms.push({ 'async-is-file-1': b3 })
let b4 = fsIsFile(`${fpTar}/lay1/lay2/lay3/lay4/t4.txt`)
ms.push({ 'async-is-file-2': b4 })
fsDeleteFolder(fpSrc)
fsDeleteFolder(fpTar)
// console.log('ms', ms)
return ms
}
let test = async () => {
let ms = []
ms = [...ms, ...await testSyncEmpty()]
ms = [...ms, ...await testSync()]
ms = [...ms, ...await testAsyncEmpty()]
ms = [...ms, ...await testAsync()]
// console.log('ms', ms)
return ms
}
// await test()
// .catch((err) => {
// console.log(err)
// })
let ms = [
{
'sync-empty-copy-folder': { success: 'done: ./_test_fsCopyFolder_tar' }
},
{ 'sync-empty-is-folder-1': true },
{ 'sync-empty-is-folder-2': true },
{ 'sync-empty-is-file-1': false },
{ 'sync-empty-is-file-2': false },
{ 'sync-copy-folder': { success: 'done: ./_test_fsCopyFolder_tar' } },
{ 'sync-is-folder-1': true },
{ 'sync-is-folder-2': true },
{ 'sync-is-file-1': true },
{ 'sync-is-file-2': true },
{
'async-empty-copy-folder': { success: 'done: ./_test_fsCopyFolder_tar' }
},
{ 'async-empty-is-folder-1': true },
{ 'async-empty-is-folder-2': true },
{ 'async-empty-is-file-1': false },
{ 'async-empty-is-file-2': false },
{
'async-copy-folder': { success: 'done: ./_test_fsCopyFolder_tar' }
},
{ 'async-is-folder-1': true },
{ 'async-is-folder-2': true },
{ 'async-is-file-1': true },
{ 'async-is-file-2': true }
]
it(`should return '${JSON.stringify(ms)}' when run test`, async function() {
let r = await test()
let rr = ms
assert.strict.deepStrictEqual(r, rr)
})
})