mavensmate
Version:
Core APIs that drive MavensMate IDEs for Salesforce1/Force.com
181 lines (144 loc) • 4.18 kB
JavaScript
;
var os = require('os');
var util = require('../../app/lib/util');
var sinon = require('sinon');
var path = require('path');
describe('mavensmate util', function(){
describe('startsWith', function() {
it('should return true', function(done) {
util.startsWith('foobar', 'foo').should.equal(true);
done();
});
it('should return false', function(done) {
util.startsWith('foobar', 'bar').should.equal(false);
done();
});
});
describe('isCredentialsError', function() {
it('should return false if not a creds-related error', function(done) {
util.isCredentialsError(new Error('foobar')).should.equal(false);
done();
});
it('should return true when it is a creds error', function(done) {
util.isCredentialsError(new Error('expired access/refresh token')).should.equal(true);
done();
});
});
describe('platform checks', function() {
var stub;
beforeEach(function() {
stub = sinon.stub(os, 'platform');
});
afterEach(function() {
stub.restore();
});
describe('isWindows', function() {
it('should return true', function(done) {
stub.returns('win32');
util.isWindows().should.equal(true);
done();
});
it('should return false', function(done) {
stub.returns('darwin');
util.isWindows().should.equal(false);
done();
});
});
describe('isLinux', function() {
it('should return true', function(done) {
stub.returns('linux');
util.isLinux().should.equal(true);
done();
});
it('should return false', function(done) {
stub.returns('darwin');
util.isLinux().should.equal(false);
done();
});
});
describe('isMac', function() {
it('should return true', function(done) {
stub.returns('darwin');
util.isMac().should.equal(true);
done();
});
it('should return false', function(done) {
stub.returns('win32');
util.isMac().should.equal(false);
done();
});
});
});
describe('getHomeDirectory', function() {
var stub;
beforeEach(function() {
stub = sinon.stub(os, 'platform');
});
afterEach(function() {
stub.restore();
});
it('should return mac home directory', function(done) {
stub.returns('darwin');
util.getHomeDirectory();
done();
});
it('should return linux home directory', function(done) {
stub.returns('linux');
util.getHomeDirectory();
done();
});
it('should return windows home directory', function(done) {
stub.returns('win32');
util.getHomeDirectory();
done();
});
});
describe('getDefaultWorkspaceSetting', function() {
var stub;
beforeEach(function() {
stub = sinon.stub(os, 'platform');
});
afterEach(function() {
stub.restore();
});
it('should return mac home directory', function(done) {
stub.returns('darwin');
process.env.HOME = 'foo';
util.getDefaultWorkspaceSetting();
done();
});
it('should return linux home directory', function(done) {
stub.returns('linux');
util.getDefaultWorkspaceSetting();
done();
});
it('should return windows home directory', function(done) {
stub.returns('win32');
util.getDefaultWorkspaceSetting();
done();
});
});
describe('getAbsolutePaths', function() {
it('should return absolute paths', function(done) {
if (os.platform() === 'win32') {
var paths = [
'relative/path/to/something',
'C:\\absolute\\path\\to\\something'
];
var ps = util.getAbsolutePaths(paths);
ps[0][0].should.equal('C');
ps[1][0].should.equal('C');
done();
} else {
var paths = [
'relative/path/to/something',
'/absolute/path/to/something'
];
var ps = util.getAbsolutePaths(paths);
ps[0][0].should.equal(path.sep);
ps[1][0].should.equal(path.sep);
done();
}
});
});
});