filestack-js
Version:
Official JavaScript library for Filestack
136 lines (134 loc) • 13.2 kB
JavaScript
/*
* Copyright (c) 2019 by Filestack.
* Some rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var picker_1 = require("./picker");
var filestack = tslib_1.__importStar(require("./../index"));
var mockPickerOpen = jest.fn(function () { return Promise.resolve(); });
var mockPickerCrop = jest.fn(function () { return Promise.resolve(); });
var mockPickerClose = jest.fn(function () { return Promise.resolve(); });
var mockPickerCancel = jest.fn(function () { return Promise.resolve(); });
jest.mock('@filestack/loader', function () {
return {
registerModule: jest.fn(),
loadModule: jest.fn(function () {
return new Promise(function (resolve) {
resolve(jest.fn().mockImplementation(function () {
return {
open: mockPickerOpen,
crop: mockPickerCrop,
close: mockPickerClose,
cancel: mockPickerCancel,
};
}));
});
}),
FILESTACK_MODULES: {
PICKER: 'picker',
FILESTACK_SDK: 'sdk',
},
};
});
var pickerInstance;
var client;
describe('picker', function () {
beforeAll(function () {
var defaultApikey = 'DEFAULT_API_KEY';
client = filestack.init(defaultApikey);
});
beforeEach(function () {
pickerInstance = (0, picker_1.picker)(client, {});
});
it('should properly open picker', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, pickerInstance.open()];
case 1:
_a.sent();
expect(mockPickerOpen).toHaveBeenCalledTimes(1);
return [2 /*return*/];
}
});
}); });
it('should properly crop picker', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var files;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
files = ['file1.txt', 'file2.txt'];
return [4 /*yield*/, pickerInstance.crop(files)];
case 1:
_a.sent();
expect.assertions(2);
expect(mockPickerCrop).toHaveBeenCalledTimes(1);
expect(mockPickerCrop).toHaveBeenCalledWith(files);
return [2 /*return*/];
}
});
}); });
it('should properly close picker', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, pickerInstance.close()];
case 1:
_a.sent();
expect(mockPickerClose).toHaveBeenCalledTimes(1);
return [2 /*return*/];
}
});
}); });
it('should properly cancel picker', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, pickerInstance.cancel()];
case 1:
_a.sent();
expect(mockPickerCancel).toHaveBeenCalledTimes(1);
return [2 /*return*/];
}
});
}); });
it('should not throw error on correct params', function () {
return expect(function () { return (0, picker_1.picker)(client, {
onOpen: function () {
console.log(123);
},
customText: {
Upload: 'customUpload',
},
uploadConfig: {
partSize: 6 * 1024 * 1024,
},
storeTo: {
container: 'test',
},
}); }).not.toThrowError('Invalid picker params');
});
it('should throw error on invalid options', function () {
return expect(function () { return (0, picker_1.picker)(client, {
// @ts-ignore
onOpen: 'test',
customText: {
Upload: 'customUpload',
// @ts-ignore
asd: {},
},
}); }).toThrowError('Invalid picker params');
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsbUNBQWtDO0FBQ2xDLDREQUF3QztBQUV4QyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQWpCLENBQWlCLENBQUMsQ0FBQztBQUV4RCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQWpCLENBQWlCLENBQUMsQ0FBQztBQUN4RCxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQWpCLENBQWlCLENBQUMsQ0FBQztBQUN6RCxJQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQyxDQUFDO0FBRTFELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7SUFDN0IsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPO2dCQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNuQyxPQUFPO3dCQUNMLElBQUksRUFBRSxjQUFjO3dCQUNwQixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLE1BQU0sRUFBRSxnQkFBZ0I7cUJBQ3pCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsaUJBQWlC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dUIsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL3BpY2tlci5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOSBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgcGlja2VyIH0gZnJvbSAnLi9waWNrZXInO1xuaW1wb3J0ICogYXMgZmlsZXN0YWNrIGZyb20gJy4vLi4vaW5kZXgnO1xuXG5jb25zdCBtb2NrUGlja2VyT3BlbiA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG5jb25zdCBtb2NrUGlja2VyQ3JvcCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuY29uc3QgbW9ja1BpY2tlckNsb3NlID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoKSk7XG5jb25zdCBtb2NrUGlja2VyQ2FuY2VsID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoKSk7XG5cbmplc3QubW9jaygnQGZpbGVzdGFjay9sb2FkZXInLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgcmVnaXN0ZXJNb2R1bGU6IGplc3QuZm4oKSxcbiAgICBsb2FkTW9kdWxlOiBqZXN0LmZuKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICByZXNvbHZlKGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcGVuOiBtb2NrUGlja2VyT3BlbixcbiAgICAgICAgICAgIGNyb3A6IG1vY2tQaWNrZXJDcm9wLFxuICAgICAgICAgICAgY2xvc2U6IG1vY2tQaWNrZXJDbG9zZSxcbiAgICAgICAgICAgIGNhbmNlbDogbW9ja1BpY2tlckNhbmNlbCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBGSUxFU1RBQ0tfTU9EVUxFUzoge1xuICAgICAgUElDS0VSOiAncGlja2VyJyxcbiAgICAgIEZJTEVTVEFDS19TREs6ICdzZGsnLFxuICAgIH0sXG4gIH07XG59KTtcblxubGV0IHBpY2tlckluc3RhbmNlO1xubGV0IGNsaWVudDtcblxuZGVzY3JpYmUoJ3BpY2tlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0QXBpa2V5ID0gJ0RFRkFVTFRfQVBJX0tFWSc7XG4gICAgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoZGVmYXVsdEFwaWtleSk7XG4gIH0pO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHBpY2tlckluc3RhbmNlID0gcGlja2VyKGNsaWVudCwge30pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHByb3Blcmx5IG9wZW4gcGlja2VyJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBpY2tlckluc3RhbmNlLm9wZW4oKTtcbiAgICBleHBlY3QobW9ja1BpY2tlck9wZW4pLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBjcm9wIHBpY2tlcicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IFsnZmlsZTEudHh0JywgJ2ZpbGUyLnR4dCddO1xuXG4gICAgYXdhaXQgcGlja2VySW5zdGFuY2UuY3JvcChmaWxlcyk7XG4gICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG4gICAgZXhwZWN0KG1vY2tQaWNrZXJDcm9wKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KG1vY2tQaWNrZXJDcm9wKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgY2xvc2UgcGlja2VyJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBpY2tlckluc3RhbmNlLmNsb3NlKCk7XG4gICAgZXhwZWN0KG1vY2tQaWNrZXJDbG9zZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHByb3Blcmx5IGNhbmNlbCBwaWNrZXInLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGlja2VySW5zdGFuY2UuY2FuY2VsKCk7XG4gICAgZXhwZWN0KG1vY2tQaWNrZXJDYW5jZWwpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgdGhyb3cgZXJyb3Igb24gY29ycmVjdCBwYXJhbXMnLCAoKSA9PiB7XG4gICAgcmV0dXJuIGV4cGVjdCgoKSA9PiBwaWNrZXIoY2xpZW50LCB7XG4gICAgICBvbk9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coMTIzKTtcbiAgICAgIH0sXG4gICAgICBjdXN0b21UZXh0OiB7XG4gICAgICAgIFVwbG9hZDogJ2N1c3RvbVVwbG9hZCcsXG4gICAgICB9LFxuICAgICAgdXBsb2FkQ29uZmlnOiB7XG4gICAgICAgIHBhcnRTaXplOiA2ICogMTAyNCAqIDEwMjQsXG4gICAgICB9LFxuICAgICAgc3RvcmVUbzoge1xuICAgICAgICBjb250YWluZXI6ICd0ZXN0JyxcbiAgICAgIH0sXG4gICAgfSkpLm5vdC50b1Rocm93RXJyb3IoJ0ludmFsaWQgcGlja2VyIHBhcmFtcycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIG9uIGludmFsaWQgb3B0aW9ucycsICgpID0+IHtcbiAgICByZXR1cm4gZXhwZWN0KCgpID0+IHBpY2tlcihjbGllbnQsIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9uT3BlbjogJ3Rlc3QnLFxuICAgICAgY3VzdG9tVGV4dDoge1xuICAgICAgICBVcGxvYWQ6ICdjdXN0b21VcGxvYWQnLFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGFzZDoge30sXG4gICAgICB9LFxuICAgIH0pKS50b1Rocm93RXJyb3IoJ0ludmFsaWQgcGlja2VyIHBhcmFtcycpO1xuICB9KTtcbn0pO1xuIl19
;