filestack-js
Version:
Official JavaScript library for Filestack
134 lines (132 loc) • 13.1 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.
*/
import { __awaiter, __generator } from "tslib";
import { picker } from './picker';
import * as filestack from './../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 = picker(client, {});
});
it('should properly open picker', function () { return __awaiter(void 0, void 0, void 0, function () {
return __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 __awaiter(void 0, void 0, void 0, function () {
var files;
return __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 __awaiter(void 0, void 0, void 0, function () {
return __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 __awaiter(void 0, void 0, void 0, function () {
return __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 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 picker(client, {
// @ts-ignore
onOpen: 'test',
customText: {
Upload: 'customUpload',
// @ts-ignore
asd: {},
},
}); }).toThrowError('Invalid picker params');
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFNLE9BQUEsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFqQixDQUFpQixDQUFDLENBQUM7QUFFeEQsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFNLE9BQUEsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFqQixDQUFpQixDQUFDLENBQUM7QUFDeEQsSUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFNLE9BQUEsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFqQixDQUFpQixDQUFDLENBQUM7QUFDekQsSUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQWpCLENBQWlCLENBQUMsQ0FBQztBQUUxRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO0lBQzdCLE9BQU87UUFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTztnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbkMsT0FBTzt3QkFDTCxJQUFJLEVBQUUsY0FBYzt3QkFDcEIsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLEtBQUssRUFBRSxlQUFlO3dCQUN0QixNQUFNLEVBQUUsZ0JBQWdCO3FCQUN6QixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENB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UmtCLENBUWxCLENBQUMsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9waWNrZXIuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHBpY2tlciB9IGZyb20gJy4vcGlja2VyJztcbmltcG9ydCAqIGFzIGZpbGVzdGFjayBmcm9tICcuLy4uL2luZGV4JztcblxuY29uc3QgbW9ja1BpY2tlck9wZW4gPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcblxuY29uc3QgbW9ja1BpY2tlckNyb3AgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcbmNvbnN0IG1vY2tQaWNrZXJDbG9zZSA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuY29uc3QgbW9ja1BpY2tlckNhbmNlbCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG5qZXN0Lm1vY2soJ0BmaWxlc3RhY2svbG9hZGVyJywgKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHJlZ2lzdGVyTW9kdWxlOiBqZXN0LmZuKCksXG4gICAgbG9hZE1vZHVsZTogamVzdC5mbigoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVzb2x2ZShqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3BlbjogbW9ja1BpY2tlck9wZW4sXG4gICAgICAgICAgICBjcm9wOiBtb2NrUGlja2VyQ3JvcCxcbiAgICAgICAgICAgIGNsb3NlOiBtb2NrUGlja2VyQ2xvc2UsXG4gICAgICAgICAgICBjYW5jZWw6IG1vY2tQaWNrZXJDYW5jZWwsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSksXG4gICAgRklMRVNUQUNLX01PRFVMRVM6IHtcbiAgICAgIFBJQ0tFUjogJ3BpY2tlcicsXG4gICAgICBGSUxFU1RBQ0tfU0RLOiAnc2RrJyxcbiAgICB9LFxuICB9O1xufSk7XG5cbmxldCBwaWNrZXJJbnN0YW5jZTtcbmxldCBjbGllbnQ7XG5cbmRlc2NyaWJlKCdwaWNrZXInLCAoKSA9PiB7XG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEFwaWtleSA9ICdERUZBVUxUX0FQSV9LRVknO1xuICAgIGNsaWVudCA9IGZpbGVzdGFjay5pbml0KGRlZmF1bHRBcGlrZXkpO1xuICB9KTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBwaWNrZXJJbnN0YW5jZSA9IHBpY2tlcihjbGllbnQsIHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBvcGVuIHBpY2tlcicsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBwaWNrZXJJbnN0YW5jZS5vcGVuKCk7XG4gICAgZXhwZWN0KG1vY2tQaWNrZXJPcGVuKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgY3JvcCBwaWNrZXInLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2ZpbGUxLnR4dCcsICdmaWxlMi50eHQnXTtcblxuICAgIGF3YWl0IHBpY2tlckluc3RhbmNlLmNyb3AoZmlsZXMpO1xuICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuICAgIGV4cGVjdChtb2NrUGlja2VyQ3JvcCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChtb2NrUGlja2VyQ3JvcCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHByb3Blcmx5IGNsb3NlIHBpY2tlcicsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBwaWNrZXJJbnN0YW5jZS5jbG9zZSgpO1xuICAgIGV4cGVjdChtb2NrUGlja2VyQ2xvc2UpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBjYW5jZWwgcGlja2VyJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBpY2tlckluc3RhbmNlLmNhbmNlbCgpO1xuICAgIGV4cGVjdChtb2NrUGlja2VyQ2FuY2VsKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IHRocm93IGVycm9yIG9uIGNvcnJlY3QgcGFyYW1zJywgKCkgPT4ge1xuICAgIHJldHVybiBleHBlY3QoKCkgPT4gcGlja2VyKGNsaWVudCwge1xuICAgICAgb25PcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKDEyMyk7XG4gICAgICB9LFxuICAgICAgY3VzdG9tVGV4dDoge1xuICAgICAgICBVcGxvYWQ6ICdjdXN0b21VcGxvYWQnLFxuICAgICAgfSxcbiAgICAgIHVwbG9hZENvbmZpZzoge1xuICAgICAgICBwYXJ0U2l6ZTogNiAqIDEwMjQgKiAxMDI0LFxuICAgICAgfSxcbiAgICAgIHN0b3JlVG86IHtcbiAgICAgICAgY29udGFpbmVyOiAndGVzdCcsXG4gICAgICB9LFxuICAgIH0pKS5ub3QudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHBpY2tlciBwYXJhbXMnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBvbiBpbnZhbGlkIG9wdGlvbnMnLCAoKSA9PiB7XG4gICAgcmV0dXJuIGV4cGVjdCgoKSA9PiBwaWNrZXIoY2xpZW50LCB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvbk9wZW46ICd0ZXN0JyxcbiAgICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgICAgVXBsb2FkOiAnY3VzdG9tVXBsb2FkJyxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBhc2Q6IHt9LFxuICAgICAgfSxcbiAgICB9KSkudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHBpY2tlciBwYXJhbXMnKTtcbiAgfSk7XG59KTtcbiJdfQ==