UNPKG

@zendesk/zcli-themes

Version:

zcli theme commands live here

55 lines (54 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sinon = require("sinon"); const test_1 = require("@oclif/test"); const zcli_core_1 = require("@zendesk/zcli-core"); const createThemeUpdateJob_1 = require("./createThemeUpdateJob"); const chalk = require("chalk"); const errors = require("@oclif/core/lib/errors"); describe('createThemeUpdateJob', () => { beforeEach(() => { sinon.restore(); }); it('calls the jobs/themes/updates endpoint with the correct payload and returns the job', async () => { const requestStub = sinon.stub(zcli_core_1.request, 'requestAPI'); const job = { id: '9999', status: 'pending', data: {} }; requestStub.returns(Promise.resolve({ data: { job } })); (0, test_1.expect)(await (0, createThemeUpdateJob_1.default)('1234', true)).to.equal(job); (0, test_1.expect)(requestStub.calledWith('/api/v2/guide/theming/jobs/themes/updates', sinon.match({ method: 'POST', data: { job: { attributes: { theme_id: '1234', replace_settings: true, format: 'zip' } } } }))).to.equal(true); }); it('errors when creation fails', async () => { const errorStub = sinon.stub(errors, 'error').callThrough(); sinon.stub(zcli_core_1.request, 'requestAPI').throws({ response: { data: { errors: [{ code: 'TooManyThemes', title: 'Maximum number of allowed themes reached' }] } } }); try { await (0, createThemeUpdateJob_1.default)('1234', false); } catch (_a) { (0, test_1.expect)(errorStub.calledWith(`${chalk.bold('TooManyThemes')} - Maximum number of allowed themes reached`)).to.equal(true); } }); });