filestack-adaptive
Version:
HTML5 picture elements powered by Filestack
105 lines (103 loc) • 12.2 kB
JavaScript
import utils from './utils';
import * as assert from 'assert';
describe('utils', function () {
describe('cartesian', function () {
it('should generate a correct array', function () {
var arr = [
[
'webp', 'png',
],
[
'200w', '600w',
],
];
var result = utils.cartesian(arr);
var expected = [
['webp', '200w'],
['webp', '600w'],
['png', '200w'],
['png', '600w'],
];
assert.deepStrictEqual(result, expected);
});
});
describe('arrToChunks', function () {
it('should slice array into proper chunks', function () {
var arr = [1, 2, 3, 4, 5, 6, 7];
var result = utils.arrToChunks(arr, 2);
var expected = [
[1, 2],
[3, 4],
[5, 6],
[7],
];
assert.deepStrictEqual(result, expected);
});
});
describe('removeEmpty', function () {
it('should remove falsy values from an object', function () {
var obj = {
a: 52,
b: false,
c: undefined,
d: '',
e: true,
};
var result = utils.removeEmpty(obj);
var expected = {
a: 52,
e: true,
};
assert.deepStrictEqual(result, expected);
});
});
describe('getNumber', function () {
it('should return initial when it is number', function () {
var value = 542;
var result = utils.getNumber(value);
var expected = 542;
assert.strictEqual(result, expected);
});
it('should parse string to a number when it is possible', function () {
var value = '542';
var result = utils.getNumber(value);
var expected = 542;
assert.strictEqual(result, expected);
});
it('should return NaN when it is not possible to parse to number', function () {
var value = 'test';
var result = utils.getNumber(value);
var expected = NaN;
assert.strictEqual(result, expected);
});
});
describe('getUnit', function () {
it('should properly get unit when it is explicit', function () {
var value = '800w';
var result = utils.getUnit(value);
var expected = 'w';
assert.strictEqual(result, expected);
});
it('should return px when unit is number', function () {
var value = 800;
var result = utils.getUnit(value);
var expected = 'px';
assert.strictEqual(result, expected);
});
});
describe('flat', function () {
it('should flat only first level', function () {
var arr = [1, 2, [3, [4, 5]]];
var result = utils.flat(arr, 1);
var expected = [1, 2, 3, [4, 5]];
assert.deepStrictEqual(result, expected);
});
it('should flat two levels', function () {
var arr = [1, 2, [3, [4, 5]]];
var result = utils.flat(arr, 2);
var expected = [1, 2, 3, 4, 5];
assert.deepStrictEqual(result, expected);
});
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUM1QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxRQUFRLENBQUMsT0FBTyxFQUFFO0lBQ2hCLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDcEIsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1lBQ3BDLElBQU0sR0FBRyxHQUFHO2dCQUNWO29CQUNFLE1BQU0sRUFBRSxLQUFLO2lCQUNkO2dCQUNEO29CQUNFLE1BQU0sRUFBRSxNQUFNO2lCQUNmO2FBQ0YsQ0FBQztZQUNGLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBTSxRQUFRLEdBQUc7Z0JBQ2YsQ0FBRSxNQUFNLEVBQUUsTUFBTSxDQUFFO2dCQUNsQixDQUFFLE1BQU0sRUFBRSxNQUFNLENBQUU7Z0JBQ2xCLENBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBRTtnQkFDakIsQ0FBRSxLQUFLLEVBQUUsTUFBTSxDQUFFO2FBQ2xCLENBQUM7WUFDRixNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMsdUNBQXVDLEVBQUU7WUFDMUMsSUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFNLFFBQVEsR0FBRztnQkFDZixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ04s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QUMsOEJBQThCLEVBQUU7WUFDakMsSUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsd0JBQXdCLEVBQUU7WUFDM0IsSUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoidXRpbHMuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5kZXNjcmliZSgndXRpbHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjYXJ0ZXNpYW4nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhIGNvcnJlY3QgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBhcnIgPSBbXG4gICAgICAgIFtcbiAgICAgICAgICAnd2VicCcsICdwbmcnLFxuICAgICAgICBdLFxuICAgICAgICBbXG4gICAgICAgICAgJzIwMHcnLCAnNjAwdycsXG4gICAgICAgIF0sXG4gICAgICBdO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuY2FydGVzaWFuKGFycik7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IFtcbiAgICAgICAgWyAnd2VicCcsICcyMDB3JyBdLFxuICAgICAgICBbICd3ZWJwJywgJzYwMHcnIF0sXG4gICAgICAgIFsgJ3BuZycsICcyMDB3JyBdLFxuICAgICAgICBbICdwbmcnLCAnNjAwdycgXSxcbiAgICAgIF07XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdCwgZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2FyclRvQ2h1bmtzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2xpY2UgYXJyYXkgaW50byBwcm9wZXIgY2h1bmtzJywgKCkgPT4ge1xuICAgICAgY29uc3QgYXJyID0gWzEsIDIsIDMsIDQsIDUsIDYsIDddO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuYXJyVG9DaHVua3MoYXJyLCAyKTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gW1xuICAgICAgICBbMSwgMl0sXG4gICAgICAgIFszLCA0XSxcbiAgICAgICAgWzUsIDZdLFxuICAgICAgICBbN10sXG4gICAgICBdO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQsIGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdyZW1vdmVFbXB0eScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlbW92ZSBmYWxzeSB2YWx1ZXMgZnJvbSBhbiBvYmplY3QnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgIGE6IDUyLFxuICAgICAgICBiOiBmYWxzZSxcbiAgICAgICAgYzogdW5kZWZpbmVkLFxuICAgICAgICBkOiAnJyxcbiAgICAgICAgZTogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5yZW1vdmVFbXB0eShvYmopO1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICAgIGE6IDUyLFxuICAgICAgICBlOiB0cnVlLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0LCBleHBlY3RlZCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0TnVtYmVyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGluaXRpYWwgd2hlbiBpdCBpcyBudW1iZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IDU0MjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IDU0MjtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQsIGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIHN0cmluZyB0byBhIG51bWJlciB3aGVuIGl0IGlzIHBvc3NpYmxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSAnNTQyJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IDU0MjtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQsIGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBOYU4gd2hlbiBpdCBpcyBub3QgcG9zc2libGUgdG8gcGFyc2UgdG8gbnVtYmVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSAndGVzdCc7XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5nZXROdW1iZXIodmFsdWUpO1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBOYU47XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LCBleHBlY3RlZCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0VW5pdCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHByb3Blcmx5IGdldCB1bml0IHdoZW4gaXQgaXMgZXhwbGljaXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9ICc4MDB3JztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmdldFVuaXQodmFsdWUpO1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSAndyc7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LCBleHBlY3RlZCk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gcHggd2hlbiB1bml0IGlzIG51bWJlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gODAwO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuZ2V0VW5pdCh2YWx1ZSk7XG4gICAgICBjb25zdCBleHBlY3RlZCA9ICdweCc7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LCBleHBlY3RlZCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZmxhdCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGZsYXQgb25seSBmaXJzdCBsZXZlbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGFyciA9IFsxLCAyLCBbMywgWzQsIDVdXV07XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5mbGF0KGFyciwgMSk7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IFsxLCAyLCAzLCBbNCwgNV1dO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQsIGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGZsYXQgdHdvIGxldmVscycsICgpID0+IHtcbiAgICAgIGNvbnN0IGFyciA9IFsxLCAyLCBbMywgWzQsIDVdXV07XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5mbGF0KGFyciwgMik7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IFsxLCAyLCAzLCA0LCA1XTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0LCBleHBlY3RlZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=