228 lines
10 KiB
TypeScript
228 lines
10 KiB
TypeScript
import "typings-test";
|
|
import * as smartfile from "../dist/index";
|
|
import beautylog = require("beautylog");
|
|
let gulp = require("gulp");
|
|
let gFunction = require("gulp-function");
|
|
import path = require("path");
|
|
import should = require("should");
|
|
let vinyl = require("vinyl");
|
|
|
|
describe("smartfile".yellow,function(){
|
|
describe(".fs".yellow,function(){
|
|
describe(".fileExistsSync".yellow,function(){
|
|
it("should return an accurate boolean",function(){
|
|
(smartfile.fs.fileExistsSync("./test/mytest.json")).should.be.true();
|
|
(smartfile.fs.fileExistsSync("./test/notthere.json")).should.be.false();
|
|
});
|
|
});
|
|
describe(".fileExists".yellow,function(){
|
|
it("should return a working promise",function(){
|
|
(smartfile.fs.fileExists("./test/mytest.json")).should.be.Promise();
|
|
(smartfile.fs.fileExists("./test/mytest.json")).should.be.fulfilled();
|
|
(smartfile.fs.fileExists("./test/notthere.json")).should.not.be.fulfilled();
|
|
});
|
|
});
|
|
describe(".listFoldersSync()",function(){
|
|
it("should get the file type from a string",function(){
|
|
smartfile.fs.listFoldersSync("./test/").should.containDeep([ "testfolder"]);
|
|
smartfile.fs.listFoldersSync("./test/").should.not.containDeep([ "notExistentFolder"]);
|
|
});
|
|
});
|
|
describe(".listFolders()",function(){
|
|
it("should get the file type from a string",function(done){
|
|
smartfile.fs.listFolders("./test/")
|
|
.then(function(folderArrayArg){
|
|
folderArrayArg.should.containDeep([ "testfolder"]);
|
|
folderArrayArg.should.not.containDeep([ "notExistentFolder"]);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
describe(".listFilesSync()",function(){
|
|
it("should get the file type from a string",function(){
|
|
smartfile.fs.listFilesSync("./test/").should.containDeep([ "mytest.json"]);
|
|
smartfile.fs.listFilesSync("./test/").should.not.containDeep([ "notExistentFile"]);
|
|
smartfile.fs.listFilesSync("./test/",/mytest\.json/).should.containDeep([ "mytest.json"]);
|
|
smartfile.fs.listFilesSync("./test/",/mytests.json/).should.not.containDeep([ "mytest.json"]);
|
|
});
|
|
});
|
|
describe(".listFiles()",function(){
|
|
it("should get the file type from a string",function(done){
|
|
smartfile.fs.listFiles("./test/")
|
|
.then(function(folderArrayArg){
|
|
folderArrayArg.should.containDeep([ "mytest.json"]);
|
|
folderArrayArg.should.not.containDeep([ "notExistentFile"]);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
describe(".listFileTree()",function(){
|
|
it("should get a file tree",function(done){
|
|
smartfile.fs.listFileTree(path.resolve("./test/"),"**/*.txt")
|
|
.then(function(folderArrayArg){
|
|
folderArrayArg.should.containDeep([ "testfolder/testfile1.txt"]);
|
|
folderArrayArg.should.not.containDeep([ "mytest.json"]);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
describe(".copy()".yellow,function(){
|
|
it("should copy a directory",function(){
|
|
smartfile.fs.copy("./test/testfolder/","./test/temp/")
|
|
});
|
|
it("should copy a file",function(){
|
|
smartfile.fs.copy("./test/mytest.yaml","./test/temp/")
|
|
});
|
|
it("should copy a file and rename it",function(){
|
|
smartfile.fs.copy("./test/mytest.yaml","./test/temp/mytestRenamed.yaml")
|
|
});
|
|
});
|
|
describe(".remove()",function(){
|
|
it("should remove an entire directory",function(){
|
|
|
|
});
|
|
it("should remove single files",function(){
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
describe(".interpreter",function(){
|
|
describe(".filetype()",function(){
|
|
it("should get the file type from a string",function(){
|
|
smartfile.interpreter.filetype("./somefolder/data.json").should.equal("json");
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
describe(".fs".yellow,function(){
|
|
describe("toGulpStreamSync() and toGulpDestSync",function(){
|
|
it("should produce a gulp stream",function(done){
|
|
smartfile.fs.toGulpStreamSync("./test/my*")
|
|
.pipe(smartfile.fs.toGulpDestSync("./test/temp/"))
|
|
.pipe(gFunction(done,"atEnd"));
|
|
});
|
|
});
|
|
describe(".toObjectSync()".yellow,function(){
|
|
it("should read an " + ".yaml".blue + " file to an object",function(){
|
|
let testData = smartfile.fs.toObjectSync("./test/mytest.yaml");
|
|
testData.should.have.property("key1","this works");
|
|
testData.should.have.property("key2","this works too");
|
|
|
|
});
|
|
it("should state unknown file type for unknown file types",function(){
|
|
let testData = smartfile.fs.toObjectSync("./test/mytest.txt");
|
|
});
|
|
it("should read an " + ".json".blue + " file to an object",function(){
|
|
let testData = smartfile.fs.toObjectSync("./test/mytest.json");
|
|
testData.should.have.property("key1","this works");
|
|
testData.should.have.property("key2","this works too");
|
|
|
|
});
|
|
});
|
|
describe(".toStringSync()".yellow,function(){
|
|
it("should read a file to a string",function(){
|
|
should.equal(
|
|
smartfile.fs.toStringSync("./test/mytest.txt"),
|
|
"Some TestString &&%$"
|
|
);
|
|
});
|
|
});
|
|
describe(".toVinylSync".yellow,function(){
|
|
it("should read an " + ".json OR .yaml".blue + " file to an " + "vinyl file object".cyan,function(){
|
|
let testData = smartfile.fs.toVinylSync("./test/mytest.json");
|
|
(vinyl.isVinyl(testData)).should.be.true();
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
describe(".memory",function(){
|
|
describe(".toGulpStream()",function(){
|
|
it("should produce a valid gulp stream",function(){
|
|
let localArray = ["test1","test2","test3"];
|
|
smartfile.memory.toGulpStream(localArray)
|
|
.pipe(gulp.dest("./test/temp/"));
|
|
});
|
|
});
|
|
describe("toVinylFileSync()",function(){
|
|
it("should produce a vinylFile",function(){
|
|
let localString = "myString";
|
|
let localOptions = {filename:"vinylfile2",base:"/someDir"};
|
|
(smartfile.memory.toVinylFileSync(localString,localOptions) instanceof vinyl).should.be.true();
|
|
});
|
|
});
|
|
describe("toVinylArraySync()",function(){
|
|
it("should produce a an array of vinylfiles",function(){
|
|
let localStringArray = ["string1","string2","string3"];
|
|
let localOptions = {filename:"vinylfile2",base:"/someDir"};
|
|
let testResult = smartfile.memory.toVinylArraySync(localStringArray,localOptions);
|
|
testResult.should.be.Array();
|
|
(testResult.length === 3).should.be.true();
|
|
for (let myKey in testResult){
|
|
(testResult[myKey] instanceof vinyl).should.be.true();
|
|
}
|
|
});
|
|
});
|
|
describe("toStringSync()",function(){
|
|
it("should produce a String from vinyl file",function(){
|
|
let localString = smartfile.memory.toStringSync(new vinyl({
|
|
base:"/",
|
|
path:"/test.txt",
|
|
contents: new Buffer("myString")
|
|
}));
|
|
localString.should.equal("myString");
|
|
});
|
|
});
|
|
describe("toFs()",function(){
|
|
it("should write a file to disk and return a promise",function(done){
|
|
let localString = "myString";
|
|
smartfile.memory.toFs(
|
|
localString,
|
|
path.join(process.cwd(),"./test/temp/testMemToFs.txt")
|
|
).then(done);
|
|
});
|
|
});
|
|
describe("toFsSync()",function(){
|
|
it("should write a file to disk and return true if successfull",function(){
|
|
let localString = "myString";
|
|
smartfile.memory.toFsSync(
|
|
localString,
|
|
path.join(process.cwd(),"./test/temp/testMemToFsSync.txt")
|
|
);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe(".remote",function(){
|
|
describe("toGulpStreamSync()",function(){
|
|
it("should produce a gulp stream",function(done){
|
|
this.timeout(5000)
|
|
smartfile.remote.toGulpStreamSync("mytest.txt","https://raw.githubusercontent.com/pushrocks/smartfile/master/test/")
|
|
.pipe(smartfile.fs.toGulpDestSync("./test/temp/"))
|
|
.pipe(gFunction(done,"atEnd"));
|
|
});
|
|
});
|
|
describe(".toString()",function(){
|
|
it("should load a remote file to a variable",function(done){
|
|
this.timeout(5000);
|
|
smartfile.remote.toString("https://raw.githubusercontent.com/pushrocks/smartfile/master/test/mytest.txt")
|
|
.then(function(responseString){
|
|
should.equal(responseString,"Some TestString &&%$");
|
|
done();
|
|
});
|
|
});
|
|
it("should reject a Promise when the link is false",function(done){
|
|
this.timeout(10000);
|
|
smartfile.remote.toString("https://push.rocks/doesnotexist.txt")
|
|
.then(function(){
|
|
throw new Error("this test should not be resolved");
|
|
},function(){
|
|
done();
|
|
})
|
|
});
|
|
});
|
|
})
|
|
});
|