Skip to content

Commit

Permalink
#251 Add tests using clientstorage.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmeijer committed Mar 18, 2015
1 parent 95d8ba4 commit 07d3e2c
Showing 1 changed file with 197 additions and 14 deletions.
211 changes: 197 additions & 14 deletions test/common/util/opencontext.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@ describe('openContext', function () {

before(function (done) {
var importParam = {
filePath: './test/asset/sm_basic.json',
projectName: 'doesExist',
branchName: 'master',
gmeConfig: gmeConfig
};
filePath: './test/asset/sm_basic.json',
projectName: 'doesExist',
branchName: 'master',
gmeConfig: gmeConfig
};

importParam.storage = storage;
testFixture.importProject(importParam, function (err, result) {
if (err) {
done(err);
return;
}
storage = result.storage;
commitHash = result.commitHash;
done(err);
Expand Down Expand Up @@ -68,7 +71,7 @@ describe('openContext', function () {
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).to.equal('"doesNotExist" does not exists among: doesExist. ' +
'Set flag "createProject" to create a new project.');
'Set flag "createProject" to create a new project.');
done();
});
});
Expand Down Expand Up @@ -153,22 +156,202 @@ describe('openContext', function () {
});

// FIXME: This returns with nodes [!], could it be the local storage?
it.skip('should return error with non-existing nodeIds', function (done) {
//it('should return error with non-existing nodeIds', function (done) {
// var parameters = {
// projectName: 'doesExist',
// branchName: 'master',
// nodeIds: ['/960660211/1365653822/144', '/12']
// };
// openContext(storage, gmeConfig, parameters, function (err, result) {
// expect(err).equal(null);
// done();
// });
//});
});

describe('using client-storage', function () {
var storage,
project,
commitHash,
server,
gmeConfig = testFixture.getGmeConfig();

before(function (done) {
var importParam = {
filePath: './test/asset/sm_basic.json',
projectName: 'doesExist',
branchName: 'master',
gmeConfig: gmeConfig,
storage: null
};
gmeConfig.server.port = 9001;
server = WebGME.standaloneServer(gmeConfig);
server.start(function (err) {
storage = new WebGME.clientStorage({
globConf: gmeConfig,
type: 'node',
host: (gmeConfig.server.https.enable === true ? 'https' : 'http') + '://127.0.0.1',
webGMESessionId: 'testopencontext'
});
importParam.storage = storage;
testFixture.importProject(importParam, function (err, result) {
if (err) {
done(err);
return;
}
commitHash = result.commitHash;
result.project.closeProject(function (err) {
if (err) {
done(err);
return;
}
storage.closeDatabase(function (err) {
done(err);
});
});
});
});
});

afterEach(function (done) {
if (project) {
project.closeProject(function (err) {
storage.closeDatabase(function (err) {
done(err);
});
});
} else {
done();
}
});

after(function (done) {
server.stop(function () {
done();
});
})

it('should open existing project', function (done) {
var parameters = {
projectName: 'doesExist'
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project');
project = result.project;
done();
});
});

it('should return error with non-existing project', function (done) {
var parameters = {
projectName: 'doesNotExist'
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).to.have.string('"doesNotExist" does not exists among: ');
project = null;
done();
});
});

it('should open non-existing project with flag createProject=true', function (done) {
var parameters = {
projectName: 'willBeCreated',
createProject: true
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project');
project = result.project;
done();
});
});

it('should load existing branch', function (done) {
var parameters = {
projectName: 'doesExist',
branchName: 'master'
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project', 'rootNode', 'commitHash', 'core');
project = result.project;
done();
});
});

it('should return error with non-existing branchName', function (done) {
var parameters = {
projectName: 'doesExist',
branchName: 'b1_lancer'
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).to.equal('"b1_lancer" not in project: "doesExist".');
project = null
done();
});
});

it('should load the meta nodes', function (done) {
var parameters = {
projectName: 'doesExist',
branchName: 'master',
meta: true
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project', 'rootNode', 'commitHash', 'core', 'META');
expect(result.META).to.have.keys('FCO', 'language', 'state', 'transition');
project = result.project;
done();
});
});

it('should load the meta nodes and nodeIds', function (done) {
var parameters = {
projectName: 'doesExist',
branchName: 'master',
nodeIds: ['/960660211/1365653822/144', '/12']
meta: true,
nodeIds: ['/960660211/1365653822', '/1']
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project', 'rootNode', 'commitHash', 'core', 'META', 'nodes');
expect(result.META).to.have.keys('FCO', 'language', 'state', 'transition');
expect(result.nodes).to.have.keys('/960660211/1365653822', '/1');
project = result.project;
done();
});
});

it('should load the nodeIds', function (done) {
var parameters = {
projectName: 'doesExist',
branchName: 'master',
nodeIds: ['/960660211/1365653822', '/1']
};
openContext(storage, gmeConfig, parameters, function (err, result) {
expect(err).equal(null);
expect(result).to.have.keys('project', 'rootNode', 'commitHash', 'core', 'nodes');
expect(result.nodes).to.have.keys('/960660211/1365653822', '/1');
project = result.project;
done();
});
});

// FIXME: This returns with nodes [!], could it be the local storage?
//it('should return error with non-existing nodeIds', function (done) {
// var parameters = {
// projectName: 'doesExist',
// branchName: 'master',
// nodeIds: ['/960660211/1365653822/144', '/12']
// };
// openContext(storage, gmeConfig, parameters, function (err, result) {
// expect(err).equal(null);
// project = null;
// done();
// });
//});
});

//storage = new WebGME.clientStorage({
// globConf: gmeConfig,
// type: 'node',
// host: (gmeConfig.server.https.enable === true ? 'https' : 'http') + '://127.0.0.1'
//});
});

0 comments on commit 07d3e2c

Please sign in to comment.