webgme-bip
Version:
Design studio for component-based modeling with BIP.
130 lines (122 loc) • 4.66 kB
JavaScript
/*jshint node:true, mocha:true*/
/**
* Generated by PluginGenerator 1.7.0 from webgme on Sun Feb 19 2017 20:48:34 GMT-0600 (CST).
*/
;
var testFixture = require('../../globals');
describe('ArchitectureSpecGenerator', function () {
var gmeConfig = testFixture.getGmeConfig(),
expect = testFixture.expect,
logger = testFixture.logger.fork('ArchitectureSpecGenerator'),
PluginCliManager = testFixture.WebGME.PluginCliManager,
projectName = 'testProject',
pluginName = 'ArchitectureSpecGenerator',
project,
gmeAuth,
storage,
commitHash;
this.timeout(20000);
before(function (done) {
testFixture.clearDBAndGetGMEAuth(gmeConfig, projectName)
.then(function (gmeAuth_) {
gmeAuth = gmeAuth_;
// This uses in memory storage. Use testFixture.getMongoStorage to persist test to database.
storage = testFixture.getMemoryStorage(logger, gmeConfig, gmeAuth);
return storage.openDatabase();
})
.then(function () {
var importParam = {
projectSeed: testFixture.path.join(__dirname, 'Architecture_violations.webgmex'),
projectName: projectName,
branchName: 'master',
logger: logger,
gmeConfig: gmeConfig
};
return testFixture.importProject(storage, importParam);
})
.then(function (importResult) {
project = importResult.project;
commitHash = importResult.commitHash;
return project.createBranch('test', commitHash);
})
.nodeify(done);
});
after(function (done) {
storage.closeDatabase()
.then(function () {
return gmeAuth.unload();
})
.nodeify(done);
});
it('should fail on non-existance of enforceable transitions', function (done) {
var manager = new PluginCliManager(null, logger, gmeConfig),
pluginConfig = {},
context = {
project: project,
commitHash: commitHash,
branchName: 'test',
activeNode: '/f/h',
};
this.timeout(20000);
manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) {
try {
expect(pluginResult.success).to.equal(false);
//expect(pluginResult).to.deep.equal({});
expect(pluginResult.error).to.include('violation(s)');
expect(pluginResult.messages.length).to.equal(1);
done();
}
catch(e) {
done(e);
}
});
});
it('should fail on non-defined src and dst of connections and connectors', function (done) {
var manager = new PluginCliManager(null, logger, gmeConfig),
pluginConfig = {
},
context = {
project: project,
commitHash: commitHash,
branchName: 'test',
activeNode: '/f/E',
};
this.timeout(20000);
manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) {
try {
expect(pluginResult.success).to.equal(false);
//expect(pluginResult).to.deep.equal({});
expect(pluginResult.error).to.include('violation(s)');
expect(pluginResult.messages.length).to.equal(2);
done();
}
catch(e) {
done(e);
}
});
});
it('should fail on unconnected connector ends', function (done) {
var manager = new PluginCliManager(null, logger, gmeConfig),
pluginConfig = {
},
context = {
project: project,
commitHash: commitHash,
branchName: 'test',
activeNode: '/f/a',
};
this.timeout(20000);
manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) {
try {
expect(pluginResult.success).to.equal(false);
//expect(pluginResult).to.deep.equal({});
expect(pluginResult.error).to.include('violation(s)');
expect(pluginResult.messages.length).to.equal(2);
done();
}
catch(e) {
done(e);
}
});
});
});