fluentnode
Version:
Fluent apis for node (based on the concepts used in C#'s FluentSharp
275 lines (270 loc) • 11.7 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var expect;
require('../../src/fluentnode');
expect = require('chai').expect;
describe('| node-native | fs', function() {
var file_Contents, tmp_File, tmp_Folder;
file_Contents = null;
tmp_File = null;
tmp_Folder = null;
beforeEach(function() {
file_Contents = 'aaaa_'.add_5_Letters();
tmp_Folder = '_temp_Folder_'.add_5_Letters().folder_Create().folder_Name();
return tmp_File = '_temp_File_'.add_5_Letters().file_Create(file_Contents).file_Name();
});
afterEach(function() {
tmp_File.file_Delete();
return tmp_Folder.folder_Delete();
});
it('create_Parent_Folder', function() {
'./aaa/abc.txt'.create_Parent_Folder().assert_Is('./aaa/abc.txt');
'./aaa'.assert_Folder_Exists();
return "./aaa".delete_Folder().assert_True();
});
it('folder_Create and folder_Delete', function() {
var tmpDir;
''.folder_Create.assert_Is_Function();
''.folder_Delete.assert_Is_Function();
tmpDir = "./".temp_Name_In_Folder();
tmpDir.assert_Folder_Not_Exists().folder_Create().assert_Is(tmpDir.realPath());
tmpDir.assert_Folder_Exists().folder_Delete().assert_Is_True();
tmpDir.assert_Folder_Not_Exists();
return ''.folder_Delete.assert_Is(''.delete_Folder);
});
it('folder_Create (and its parent)', function() {
var tmpDir, tmpDir2;
tmpDir = "./".temp_Name_In_Folder();
tmpDir2 = tmpDir.path_Combine('aaa');
tmpDir2.create_Dir().assert_That_Folder_Exists();
return tmpDir.folder_Delete_Recursive().assert_Is_True();
});
it('folder_Delete_Recursive', function() {
var tmpDir, tmpFile;
tmpDir = "./".temp_Name_In_Folder().folder_Create();
tmpFile = tmpDir.temp_Name_In_Folder().file_Create();
tmpDir.folder_Delete_Recursive().assert_Is_True();
return tmpFile.assert_File_Not_Exists();
});
it('file_Append', function(done) {
var extra_Contents_1, extra_Contents_2, original_Contents;
original_Contents = tmp_File.file_Contents();
extra_Contents_1 = "_bbbb".add_5_Letters();
extra_Contents_2 = "_aaaa_".add_5_Letters();
tmp_File.file_Append(extra_Contents_1);
tmp_File.file_Contents().assert_Is(original_Contents + extra_Contents_1);
return tmp_File.file_Append(extra_Contents_2, function(fileName) {
fileName.assert_Is(tmp_File.real_Path());
tmp_File.file_Contents().assert_Is(original_Contents + extra_Contents_1 + extra_Contents_2);
return done();
});
});
it('file_Create and file_Delete', function() {
var tmpName;
tmpName = '.'.temp_Name_In_Folder();
tmpName.file_Create().assert_Is(tmpName);
tmpName.exists().assert_True();
tmpName.file_Delete().assert_True();
tmpName.exists().assert_False();
tmpName.file_Create('abc123');
tmpName.assert_File_Contents('abc123');
return tmpName.assert_File_Deleted();
});
it('file_Copy', function() {
var file1, file2, file_In_Folder, folder;
file1 = '.'.temp_Name_In_Folder();
file2 = '.'.temp_Name_In_Folder();
file1.file_Create().assert_Is(file1);
file1.assert_File_Exists();
file1.file_Copy(file2);
file2.assert_File_Exists();
folder = '_tmp_file_Copy'.folder_Create();
file_In_Folder = file1.file_Copy(folder);
file_In_Folder.assert_File_Exists();
assert_Is_Null('aaa'.file_Copy('bbb'));
assert_Is_Null(file1.file_Copy(null));
folder.folder_Delete_Recursive().assert_True();
file1.file_Delete().assert_True();
return file2.file_Delete().assert_True();
});
it('file_Contents', function() {
var file_Name;
''.file_Contents.assert_Is_Function();
file_Name = '_temp_name_'.add_Random_String(5);
file_Contents = 'value_'.add_Random_String(5);
file_Name.file_Exists().assert_Is_False();
file_Contents.save_As(file_Name);
file_Name.file_Exists().assert_Is_True();
file_Name.file_Contents().assert_Is(file_Contents);
return file_Name.file_Delete().assert_Is_True();
});
it('file_Delete', function() {
return 'aaaaa'.file_Delete().assert_Is_True();
});
it('file_Exists', function() {
''.file_Exists.assert_Is_Function();
tmp_Folder.file_Exists().assert_Is_True();
tmp_File.file_Exists().assert_Is_True();
'./aaa.js'.file_Exists().assert_Is_False();
return './aaa.js'.file_Exists().assert_Is_False();
});
it('file_Lines', function() {
var tmp_File_2;
"".file_Lines().assert_Is([]);
tmp_File_2 = "aaaa\nbbbb".save_As('_tmp_file_Lines');
tmp_File_2.file_Lines().assert_Is(['aaaa', 'bbbb']);
return tmp_File_2.assert_File_Deleted();
});
it('file_Not_Exists', function() {
''.file_Not_Exists.assert_Is_Function();
tmp_Folder.file_Not_Exists().assert_Is_False();
'./index.js'.file_Not_Exists().assert_Is_True();
return './aaa.js'.file_Not_Exists().assert_Is_True();
});
it('file_Write', function() {
var content, tmpFile;
content = 20..random_Letters();
tmpFile = './src'.fullPath().path_Combine('_temp_file.abcd').assert_File_Not_Exists().file_Write(content);
tmpFile.assert_File_Exists().file_Contents().assert_Is(content);
return tmpFile.file_Delete().assert_Is_True();
});
it('files_And_Folders', function() {
var files;
''.files_And_Folders.assert_Is_Function();
files = './'.files_And_Folders();
files.assert_Contains(tmp_File.realPath()).assert_Contains(tmp_Folder.realPath()).assert_Not_Contains('.aaaaa'.realPath());
return 'aaaa'.files_And_Folders().assert_Is([]);
});
it('files', function() {
var expectedFiles, files, tmp_File_2;
''.files.assert_Is_Function();
tmp_File_2 = '_temp_File_'.add_5_Letters().append('.txt').file_Create(file_Contents).file_Name();
files = './'.files();
expectedFiles = [tmp_File.real_Path(), tmp_File_2.real_Path()];
files.assert_Contains(expectedFiles);
files = './'.files('.txt');
files.assert_Contains(tmp_File_2.real_Path());
return tmp_File_2.assert_File_Deleted();
});
it('files_Recursive', function() {
var extension, file_To_Find, tmpFile;
extension = __filename.file_Extension().replace('coffee', 'litcoffee');
file_To_Find = ("./src/node-native/fs" + extension).fullPath();
''.files_Recursive.assert_Is_Function();
'./src'.files_Recursive().assert_Size_Is_Bigger_Than(9).assert_Contains(file_To_Find);
tmpFile = './src'.fullPath().path_Combine('_temp_file.abcd').file_Write(20..random_Letters());
'./src'.files_Recursive('.abcd').assert_Size_Is(1).first().assert_Is(tmpFile);
return tmpFile.file_Delete().assert_Is_True();
});
it('folder_Names', function() {
return '.'.folders().folder_Names().assert_Contains(tmp_Folder.folder_Name());
});
it('folders', function() {
var expectedFolders, folder, folders;
''.folders.assert_Is_Function();
folders = '.'.folders();
expectedFolders = (function() {
var i, len, ref, results;
ref = 'src,test'.split(',');
results = [];
for (i = 0, len = ref.length; i < len; i++) {
folder = ref[i];
results.push(folder.realPath());
}
return results;
})();
return folders.assert_Contains(expectedFolders);
});
it('folders_Recursive', function() {
var root_Folder, target_Folder;
root_Folder = (typeof wallaby !== "undefined" && wallaby !== null ? wallaby.localProjectDir : void 0) || '.';
target_Folder = root_Folder.path_Combine('docs');
return target_Folder.folders_Recursive().folder_Names().assert_Is(['fonts', 'images', 'stylesheets', 'public']);
});
it('is_Folder', function() {
''.is_Folder.assert_Is_Function();
tmp_Folder.is_Folder().assert_Is_True();
tmp_File.is_Folder().assert_Is_False();
return '.gitAAA'.is_Folder().assert_Is_False();
});
it('is_Not_Folder', function() {
return "".add_5_Random_Letters().is_Not_Folder().assert_Is_True();
});
it('is_File', function() {
''.is_File.assert_Is_Function();
tmp_Folder.is_File().assert_Is_False();
tmp_File.is_File().assert_Is_True();
return '.gitAAA'.is_File().assert_Is_False();
});
it('realPath', function() {
tmp_Folder.realPath().assert_Is(process.cwd().path_Combine(tmp_Folder));
tmp_File.realPath().assert_Is(process.cwd().path_Combine(tmp_File));
return assert_Is_Null('.gitignore2'.realPath());
});
it('save_As', function() {
var file_Name, file_Value1, file_Value2;
file_Name = '_tmp_file_'.add_Random_String(5);
file_Value1 = 'value'.add_Random_String(5);
file_Value2 = 'value'.add_Random_String(5);
file_Name.exists().assert_Is_False();
file_Value1.save_As(file_Name).assert_Is(file_Name.real_Path()).assert_File_Exists();
file_Name.exists().assert_Is_True();
file_Name.file_Contents().assert_Is(file_Value1);
file_Name.file_Contents().assert_Is_Not(file_Value2);
file_Value2.save_As(file_Name).assert_Is(file_Name.real_Path()).assert_File_Exists();
file_Name.exists().assert_Is_True();
file_Name.file_Contents().assert_Is_Not(file_Value1);
file_Name.file_Contents().assert_Is(file_Value2);
file_Name.file_Delete().assert_Is_True();
return ''.save_As.assert_Is(''.saveAs);
});
it('Save_As file path must be 255 characters max', function() {
var file_Content, file_Name;
file_Name = '_tmp_file_'.add_Random_String(245);
file_Content = ''.add_Random_String(100);
file_Name.length.assert_Is(255);
return file_Content.save_As(file_Name).assert_File_Exists().assert_File_Deleted();
});
it('Save_As file path must be 255 characters max (file must not be created)', function() {
var file_Content, file_Name;
file_Name = '_tmp_file_'.add_Random_String(1000);
file_Content = ''.add_Random_String(100);
file_Name.length.assert_Is(1010);
file_Content.save_As(file_Name).assert_Is_False();
return file_Name.exists().assert_Is_False();
});
it('temp_File', function() {
var value;
value = "abc".add_5_Letters();
'./'.temp_File(value).assert_File_Exists().assert_File_Contents(value).assert_File_Deleted();
'./'.temp_File(null).assert_File_Exists().assert_File_Contents('').assert_File_Deleted();
return assert_Is_Null('aaaaaa'.temp_File());
});
it('temp_Name_In_Folder', function() {
var tmpName;
tmpName = './'.temp_Name_In_Folder();
expect(tmpName).to.contain('./'.realPath());
expect(tmpName).to.contain('_tmp_');
return expect(tmpName.size()).to.equal('./'.realPath().size() + 16);
});
it('touch', function() {
var tempFile;
expect(''.touch).to.be.an('function');
tempFile = '.'.temp_Name_In_Folder().touch();
expect(tempFile.file_Exists()).to.be["true"];
return expect(tempFile.file_Delete()).to.be["true"];
});
it('exists', function() {
return expect('.git'.exists).to.equal(".git".file_Exists);
});
it('create_Dir', function() {
return expect('.git'.create_Dir).to.equal(".git".folder_Create);
});
it('folder_Exists', function() {
return expect('.git'.folder_Exists).to.equal(".git".is_Folder);
});
return it('is_Directory', function() {
return expect('.git'.is_Directory).to.equal(".git".is_Folder);
});
});
}).call(this);