UNPKG

@zendesk/zcli-themes

Version:

zcli theme commands live here

52 lines (51 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sinon = require("sinon"); const test_1 = require("@oclif/test"); const axios = require("axios"); const zcli_core_1 = require("@zendesk/zcli-core"); const uploadThemePackage_1 = require("./uploadThemePackage"); const errors = require("@oclif/core/lib/errors"); const job = { id: '9999', status: 'pending', data: { theme_id: '1234', upload: { url: 'upload/url', parameters: { foo: 'foo', bar: 'bar' } } } }; describe('uploadThemePackage', () => { beforeEach(() => { sinon.restore(); }); it('calls the job upload endpoint with the correct payload and returns the job', async () => { const file = Buffer.from('file content'); const requestStub = sinon.stub(zcli_core_1.request, 'requestAPI'); await (0, uploadThemePackage_1.default)(job, file, 'filename'); (0, test_1.expect)(requestStub.calledWith('upload/url', sinon.match({ method: 'POST', data: sinon.match.instanceOf(Buffer), maxBodyLength: uploadThemePackage_1.themeSizeLimit, maxContentLength: uploadThemePackage_1.themeSizeLimit }))).to.equal(true); }); it('errors when the upload fails', async () => { const file = Buffer.from('file content'); const requestStub = sinon.stub(zcli_core_1.request, 'requestAPI'); const errorStub = sinon.stub(errors, 'error').callThrough(); const error = new axios.AxiosError('Network error'); requestStub.throws(error); try { await (0, uploadThemePackage_1.default)(job, file, 'filename'); } catch (_a) { (0, test_1.expect)(errorStub.calledWith(error)).to.equal(true); } }); });