@zendesk/zcli-themes
Version:
zcli theme commands live here
30 lines (29 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const sinon = require("sinon");
const test_1 = require("@oclif/test");
const fs = require("fs");
const createThemePackage = require("./createThemePackage");
describe('createThemePackage', () => {
beforeEach(() => {
sinon.restore();
});
it('returns an object containing a readStream and a removePackage method', async () => {
const writeStreamStub = sinon.createStubInstance(fs.WriteStream);
sinon.stub(fs, 'createWriteStream').returns(writeStreamStub);
const readFileSync = sinon.createStubInstance(Buffer);
sinon.stub(fs, 'readFileSync').returns(readFileSync);
const unlinkSyncStub = sinon.stub(fs, 'unlinkSync');
const createZipArchiveStub = sinon.stub(createThemePackage, 'createZipArchive');
createZipArchiveStub.returns({
pipe: sinon.stub(),
directory: sinon.stub(),
file: sinon.stub(),
finalize: sinon.stub()
}); // eslint-disable-line @typescript-eslint/no-explicit-any
const { file, removePackage } = await createThemePackage.default('theme/path');
(0, test_1.expect)(file).to.instanceOf(Buffer);
removePackage();
(0, test_1.expect)(unlinkSyncStub.called).to.equal(true);
});
});