leetcode-cli
Version:
A cli tool to enjoy leetcode!
65 lines (51 loc) • 1.55 kB
JavaScript
const assert = require('chai').assert;
const rewire = require('rewire');
const _ = require('underscore');
const th = require('./helper');
describe('config', function() {
let config;
const FILE = './tmp/config.json';
beforeEach(function() {
th.clean();
const file = rewire('../lib/file');
file.configFile = () => FILE;
config = rewire('../lib/config');
config.__set__('file', file);
});
function createConfigFile(data) {
const fs = require('fs');
fs.writeFileSync(FILE, JSON.stringify(data));
}
it('should ok w/o local config', function() {
const DEFAULT_CONFIG = config.__get__('DEFAULT_CONFIG');
config.init();
let actual = config.getAll();
let expect = DEFAULT_CONFIG;
assert.deepEqual(actual, expect);
actual = config.getAll(true);
expect = _.omit(expect, 'sys');
assert.deepEqual(actual, expect);
});
it('should ok w/ local config', function() {
createConfigFile({
autologin: {enable: false},
code: {lang: 'ruby'},
color: {enable: false}
});
config.init();
assert.equal(config.autologin.enable, false);
assert.equal(config.code.lang, 'ruby');
assert.equal(config.color.enable, false);
assert.equal(config.code.editor, 'vim');
});
it('should remove legacy keys', function() {
createConfigFile({
USE_COLOR: true,
code: {lang: 'ruby'}
});
config.init();
assert.equal(config.USE_COLOR, undefined);
assert.equal(config.code.lang, 'ruby');
});
});
;