mavensmate
Version:
Core APIs that drive MavensMate IDEs for Salesforce1/Force.com
94 lines (75 loc) • 3.87 kB
JavaScript
;
var helper = require('../../test-helper');
var chai = require('chai');
var assert = chai.assert;
var should = chai.should();
var path = require('path');
var fs = require('fs-extra');
chai.use(require('chai-fs'));
describe('mavensmate clean-project-command', function() {
var project;
var commandExecutor;
before(function(done) {
this.timeout(120000);
helper.bootstrapEnvironment();
helper.unlinkEditor();
commandExecutor = helper.getCommandExecutor();
helper.putTestProjectInTestWorkspace('clean-project');
helper.addProject('clean-project')
.then(function(proj) {
project = proj;
done();
})
.catch(function(err) {
done(err);
});
});
after(function(done) {
helper.cleanUpProject('clean-project');
done();
});
it('should revert the project to server state based on package.xml', function(done) {
this.timeout(120000);
var members = '<types><members>*</members><name>ApexClass</name></types>';
var packageXml = '<?xml version="1.0" encoding="UTF-8"?><Package xmlns="http://soap.sforce.com/2006/04/metadata">'+members+'<version>36.0</version></Package>';
fs.writeFileSync(path.join(helper.baseTestDirectory(), 'workspace', 'clean-project', 'src', 'package.xml'), packageXml);
commandExecutor.execute({
name:'clean-project',
project: project
})
.then(function(response) {
response.message.should.equal('Project cleaned successfully');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project'), 'Project directory does not exist');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'config'), 'Project config directory does not exist');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src'), 'Project src directory does not exist');
assert.isFile(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src', 'package.xml'), 'Project package.xml does not exist');
done();
})
.catch(function(err) {
done(err);
});
});
it('should respect the user updating the package.xml file directly', function(done) {
this.timeout(120000);
var members = '<types><members>Account</members><name>CustomObject</name></types>';
var packageXml = '<?xml version="1.0" encoding="UTF-8"?><Package xmlns="http://soap.sforce.com/2006/04/metadata">'+members+'<version>36.0</version></Package>';
fs.writeFileSync(path.join(helper.baseTestDirectory(), 'workspace', 'clean-project', 'src', 'package.xml'), packageXml);
commandExecutor.execute({
name: 'clean-project',
project: project
})
.then(function(response) {
response.message.should.equal('Project cleaned successfully');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project'), 'Project directory does not exist');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'config'), 'Project config directory does not exist');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src'), 'Project src directory does not exist');
assert.isDirectory(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src', 'objects'), 'Project src objects directory does not exist');
fs.existsSync(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src', 'classes')).should.equal(false);
assert.isFile(path.join(helper.baseTestDirectory(),'workspace', 'clean-project', 'src', 'package.xml'), 'Project package.xml does not exist');
done();
})
.catch(function(err) {
done(err);
});
});
});