UNPKG

@zendesk/zcli-core

Version:

ZCLI core libraries and services

79 lines (78 loc) 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const test_1 = require("@oclif/test"); const fs = require("fs-extra"); const sinon = require("sinon"); const config_1 = require("./config"); describe('Config', () => { describe('ensureConfigFile', () => { let outputJsonStub; beforeEach(() => { outputJsonStub = sinon.stub(fs, 'outputJson').resolves(); }); afterEach(() => { sinon.restore(); }); test_1.test .stub(fs, 'pathExists', () => Promise.resolve(true)) .it('should not create file, if file exists', async () => { const config = new config_1.default(); await config.ensureConfigFile(); (0, test_1.expect)(outputJsonStub.called).to.equal(false); }); test_1.test .stub(fs, 'pathExists', () => Promise.resolve(false)) .it('should create file, if file does not exists', async () => { const config = new config_1.default(); await config.ensureConfigFile(); (0, test_1.expect)(outputJsonStub.called).to.equal(true); }); }); describe('getConfig', () => { const mockConfig = { foo: 'bar' }; test_1.test .stub(fs, 'pathExists', () => Promise.resolve(true)) .stub(fs, 'readJson', () => Promise.resolve(mockConfig)) .it('should read file and return config key', async () => { const config = new config_1.default(); (0, test_1.expect)(await config.getConfig('foo')).to.equal('bar'); }); test_1.test .stub(fs, 'pathExists', () => Promise.resolve(true)) .stub(fs, 'readJson', () => Promise.resolve()) .it('should read file and return undefined if key not found', async () => { const config = new config_1.default(); (0, test_1.expect)(await config.getConfig('zoo')).to.equal(undefined); }); }); describe('setConfig', () => { let mockConfig = { foo: 'bar' }; test_1.test .stub(fs, 'pathExists', () => Promise.resolve(true)) .stub(fs, 'readJson', () => Promise.resolve(mockConfig)) .stub(fs, 'outputJson', (...args) => { mockConfig = args[1]; return Promise.resolve(); }) .it('should update config with new key value', async () => { const config = new config_1.default(); await config.setConfig('zoo', 'baz'); (0, test_1.expect)(mockConfig).to.deep.equal({ foo: 'bar', zoo: 'baz' }); }); }); describe('removeConfig', () => { let mockConfig = { foo: 'bar', zoo: 'baz' }; test_1.test .stub(fs, 'pathExists', () => Promise.resolve(true)) .stub(fs, 'readJson', () => Promise.resolve(mockConfig)) .stub(fs, 'outputJson', (...args) => { mockConfig = args[1]; return Promise.resolve(); }) .it('should remove key value from config', async () => { const config = new config_1.default(); await config.removeConfig('foo'); (0, test_1.expect)(mockConfig).to.deep.equal({ zoo: 'baz' }); }); }); });