@zendesk/zcli-themes
Version:
zcli theme commands live here
52 lines (51 loc) • 1.87 kB
JavaScript
"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);
}
});
});