/********************************************************************* * * * 文件单元测试 * 创建时间: 2021-06-03 * 作者: 孟凯伦 * * **********************************************************************/ import { expect } from "chai"; import os from "os"; import fs from "fs/promises"; import path from "path"; import { v4 as uuidv4 } from 'uuid'; import { Test, Tests } from "../testDecorator"; import FilesUtils from "../../src/utils/filesUtils"; @Tests("文件工具测试") class FilesUtilsSpece { /** * 获取临时文件夹目录 */ private get getTempDirPath(): string { return os.tmpdir(); } @Test("验证文件夹创建是否成功") public async testCreateDir(): Promise { const tempDirName = path.join(this.getTempDirPath, uuidv4()); await FilesUtils.CreateDir(tempDirName); const newDir = await fs.stat(tempDirName); expect(newDir.isDirectory).to.be.ok; // 删除测试文件夹 await fs.rmdir(tempDirName); } @Test("验证文件写入是否成功") public async testWriteFile(): Promise { // 写入文件路径 const writeFilePath = path.join(this.getTempDirPath, uuidv4() + ".txt"); // 写入内容 const writeContent = "这个是测试内容!"; await FilesUtils.CreateAndWriteFile(writeFilePath, writeContent); // 获取文件内容 const readTxt = await fs.readFile(writeFilePath, { encoding: "utf8" }); expect(readTxt).to.be.eq(writeContent); // 删除测试文件 fs.rm(writeFilePath); } @Test("验证复制文件是否成功") public async testCopyFile(): Promise { // 原文件路径 const oFilePath = path.join(this.getTempDirPath, uuidv4() + ".temp1"); // 创建原文件 await fs.open(oFilePath, "w"); // 复制文件路径 const cpFilePath = path.join(this.getTempDirPath, uuidv4() + ".temp2"); await FilesUtils.CopyFile(oFilePath, cpFilePath); const newCpFile = await fs.stat(cpFilePath); expect(newCpFile.isFile).to.be.ok; // 移除测试文件 await fs.rm(oFilePath); await fs.rm(cpFilePath); } }