Initial projects implementation

This commit is contained in:
Nick O'Leary
2017-09-20 10:30:07 +01:00
parent 9a8b404054
commit b1cd13d629
49 changed files with 2711 additions and 420 deletions

View File

@@ -21,6 +21,12 @@ var path = require('path');
var localfilesystem = require("../../../../../red/runtime/storage/localfilesystem");
describe('storage/localfilesystem', function() {
var mockRuntime = {
log:{
_:function() { return "placeholder message"},
info: function() { }
}
};
var userDir = path.join(__dirname,".testUserHome");
var testFlow = [{"type":"tab","id":"d8be2a6d.2741d8","label":"Sheet 1"}];
beforeEach(function(done) {
@@ -33,7 +39,7 @@ describe('storage/localfilesystem', function() {
});
it('should initialise the user directory',function(done) {
localfilesystem.init({userDir:userDir}).then(function() {
localfilesystem.init({userDir:userDir}, mockRuntime).then(function() {
fs.existsSync(path.join(userDir,"lib")).should.be.true();
fs.existsSync(path.join(userDir,"lib",'flows')).should.be.true();
done();
@@ -49,7 +55,7 @@ describe('storage/localfilesystem', function() {
fs.mkdirSync(process.env.NODE_RED_HOME);
fs.writeFileSync(path.join(process.env.NODE_RED_HOME,".config.json"),"{}","utf8");
var settings = {};
localfilesystem.init(settings).then(function() {
localfilesystem.init(settings, mockRuntime).then(function() {
try {
fs.existsSync(path.join(process.env.NODE_RED_HOME,"lib")).should.be.true();
fs.existsSync(path.join(process.env.NODE_RED_HOME,"lib",'flows')).should.be.true();
@@ -74,7 +80,7 @@ describe('storage/localfilesystem', function() {
fs.mkdirSync(path.join(process.env.HOMEPATH,".node-red"));
fs.writeFileSync(path.join(process.env.HOMEPATH,".node-red",".config.json"),"{}","utf8");
var settings = {};
localfilesystem.init(settings).then(function() {
localfilesystem.init(settings, mockRuntime).then(function() {
try {
fs.existsSync(path.join(process.env.HOMEPATH,".node-red","lib")).should.be.true();
fs.existsSync(path.join(process.env.HOMEPATH,".node-red","lib",'flows')).should.be.true();
@@ -101,7 +107,7 @@ describe('storage/localfilesystem', function() {
fs.mkdirSync(process.env.HOME);
var settings = {};
localfilesystem.init(settings).then(function() {
localfilesystem.init(settings, mockRuntime).then(function() {
try {
fs.existsSync(path.join(process.env.HOME,".node-red","lib")).should.be.true();
fs.existsSync(path.join(process.env.HOME,".node-red","lib",'flows')).should.be.true();
@@ -131,7 +137,7 @@ describe('storage/localfilesystem', function() {
fs.mkdirSync(process.env.USERPROFILE);
var settings = {};
localfilesystem.init(settings).then(function() {
localfilesystem.init(settings, mockRuntime).then(function() {
try {
fs.existsSync(path.join(process.env.USERPROFILE,".node-red","lib")).should.be.true();
fs.existsSync(path.join(process.env.USERPROFILE,".node-red","lib",'flows')).should.be.true();
@@ -151,7 +157,7 @@ describe('storage/localfilesystem', function() {
});
it('should handle missing flow file',function(done) {
localfilesystem.init({userDir:userDir}).then(function() {
localfilesystem.init({userDir:userDir}, mockRuntime).then(function() {
var flowFile = 'flows_'+require('os').hostname()+'.json';
var flowFilePath = path.join(userDir,flowFile);
fs.existsSync(flowFilePath).should.be.false();
@@ -167,7 +173,7 @@ describe('storage/localfilesystem', function() {
});
it('should handle empty flow file, no backup',function(done) {
localfilesystem.init({userDir:userDir}).then(function() {
localfilesystem.init({userDir:userDir}, mockRuntime).then(function() {
var flowFile = 'flows_'+require('os').hostname()+'.json';
var flowFilePath = path.join(userDir,flowFile);
var flowFileBackupPath = path.join(userDir,"."+flowFile+".backup");
@@ -185,7 +191,7 @@ describe('storage/localfilesystem', function() {
});
it('should handle empty flow file, restores backup',function(done) {
localfilesystem.init({userDir:userDir}).then(function() {
localfilesystem.init({userDir:userDir}, mockRuntime).then(function() {
var flowFile = 'flows_'+require('os').hostname()+'.json';
var flowFilePath = path.join(userDir,flowFile);
var flowFileBackupPath = path.join(userDir,"."+flowFile+".backup");
@@ -208,7 +214,7 @@ describe('storage/localfilesystem', function() {
});
it('should save flows to the default file',function(done) {
localfilesystem.init({userDir:userDir}).then(function() {
localfilesystem.init({userDir:userDir}, mockRuntime).then(function() {
var flowFile = 'flows_'+require('os').hostname()+'.json';
var flowFilePath = path.join(userDir,flowFile);
var flowFileBackupPath = path.join(userDir,"."+flowFile+".backup");
@@ -237,7 +243,7 @@ describe('storage/localfilesystem', function() {
var flowFile = 'test.json';
var flowFilePath = path.join(userDir,flowFile);
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}, mockRuntime).then(function() {
fs.existsSync(defaultFlowFilePath).should.be.false();
fs.existsSync(flowFilePath).should.be.false();
@@ -261,7 +267,7 @@ describe('storage/localfilesystem', function() {
it('should format the flows file when flowFilePretty specified',function(done) {
var flowFile = 'test.json';
var flowFilePath = path.join(userDir,flowFile);
localfilesystem.init({userDir:userDir, flowFile:flowFilePath,flowFilePretty:true}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath,flowFilePretty:true}, mockRuntime).then(function() {
localfilesystem.saveFlows(testFlow).then(function() {
var content = fs.readFileSync(flowFilePath,"utf8");
content.split("\n").length.should.be.above(1);
@@ -286,7 +292,7 @@ describe('storage/localfilesystem', function() {
var flowFilePath = path.join(userDir,flowFile);
var flowFileBackupPath = path.join(userDir,"."+flowFile+".backup");
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}, mockRuntime).then(function() {
fs.existsSync(defaultFlowFilePath).should.be.false();
fs.existsSync(flowFilePath).should.be.false();
fs.existsSync(flowFileBackupPath).should.be.false();
@@ -326,7 +332,7 @@ describe('storage/localfilesystem', function() {
var flowFile = 'test.json';
var flowFilePath = path.join(userDir,flowFile);
var credFile = path.join(userDir,"test_cred.json");
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}, mockRuntime).then(function() {
fs.existsSync(credFile).should.be.false();
localfilesystem.getCredentials().then(function(creds) {
@@ -345,7 +351,7 @@ describe('storage/localfilesystem', function() {
var flowFilePath = path.join(userDir,flowFile);
var credFile = path.join(userDir,"test_cred.json");
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}, mockRuntime).then(function() {
fs.existsSync(credFile).should.be.false();
@@ -374,7 +380,7 @@ describe('storage/localfilesystem', function() {
var credFile = path.join(userDir,"test_cred.json");
var credFileBackup = path.join(userDir,".test_cred.json.backup");
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath}, mockRuntime).then(function() {
fs.writeFileSync(credFile,"{}","utf8");
@@ -400,7 +406,7 @@ describe('storage/localfilesystem', function() {
var flowFilePath = path.join(userDir,flowFile);
var credFile = path.join(userDir,"test_cred.json");
localfilesystem.init({userDir:userDir, flowFile:flowFilePath, flowFilePretty:true}).then(function() {
localfilesystem.init({userDir:userDir, flowFile:flowFilePath, flowFilePretty:true}, mockRuntime).then(function() {
fs.existsSync(credFile).should.be.false();