ghost-storage-cloudinary-v2
Version:
Cloudinary storage adapter for Ghost
65 lines (55 loc) • 2.27 kB
JavaScript
;
const chai = require('chai'),
expect = chai.expect,
path = require('path'),
RetinaJS = require(path.join(__dirname, '../../../plugins')).RetinaJS,
emptyFunc = function () {
// Do nothing
};
describe('generateDprConfigs', function () {
it('should return 1 config when dpr = 1 and have public_id untouched', function (done) {
const retinajs = new RetinaJS(emptyFunc, { upload: { public_id: 'foo' } }, { baseWidth: 200 }),
dprConfig = retinajs.generateDprConfigs(1);
expect(dprConfig).to.have.lengthOf(1);
expect(dprConfig[0].upload.public_id).to.equal('foo');
expect(dprConfig[0].upload.width).to.equal(200);
expect(dprConfig[0].upload.crop).to.equal('scale');
expect(dprConfig[0].upload.dpr).to.equal('1.0');
expect(dprConfig[0].upload.tags[0]).to.equal('dpr1');
done();
});
it('should return 3 configs when dpr = 3', function (done) {
const uploaderConfig = {
upload: {
public_id: 'foo',
tags: ['test']
}
},
retinajs = new RetinaJS(emptyFunc, uploaderConfig, { baseWidth: 200 }),
dprConfig = retinajs.generateDprConfigs(3);
expect(dprConfig).to.have.lengthOf(3);
for (let i = 0; i < 3; i += 1) {
let pubId = 'foo';
const dpr = 3 - i;
if (i <= 1) {
pubId = `foo@${dpr}x`;
}
expect(dprConfig[i].upload.public_id).to.equal(pubId);
expect(dprConfig[i].upload.width).to.equal(200);
expect(dprConfig[i].upload.crop).to.equal('scale');
expect(dprConfig[i].upload.dpr).to.equal(`${dpr}.0`);
expect(dprConfig[i].upload.tags[1]).to.equal(`dpr${dpr}`);
}
done();
});
it('should throw an error when dpr < 1', function (done) {
const retinajs = new RetinaJS(emptyFunc, { upload: { public_id: 'foo' } }, { baseWidth: 1 });
try {
retinajs.generateDprConfigs(0);
done('should raise an error');
} catch (e) {
expect(e.message).to.equal('Unexpected dpr value: 0');
done();
}
});
});