Path: blob/master/node_modules/@jimp/plugin-cover/test/cover.test.js
1129 views
import { Jimp, mkJGD, hasOwnProp } from '@jimp/test-utils';1import configure from '@jimp/custom';2import crop from '@jimp/plugin-crop';3import scale from '@jimp/plugin-scale';4import resize from '@jimp/plugin-resize';56import cover from '../src';78const jimp = configure({ plugins: [resize, scale, crop, cover] }, Jimp);910describe('All align combinations for cover', () => {11const verticalJGD = mkJGD(12'▴▴▴▴▸▸▸▸',13'▴▴▴▴▸▸▸▸',14'▴▴▴▴▸▸▸▸',15'▴▴▴▴▸▸▸▸',16'▴▴▴▴▸▸▸▸',17'▴▴▴▴▸▸▸▸',18'▾▾▾▾◆◆◆◆',19'▾▾▾▾◆◆◆◆',20'▾▾▾▾◆◆◆◆',21'▾▾▾▾◆◆◆◆',22'▾▾▾▾◆◆◆◆',23'▾▾▾▾◆◆◆◆'24);2526const horizontalJGD = mkJGD(27'▴▴▴▴▴▴▸▸▸▸▸▸',28'▴▴▴▴▴▴▸▸▸▸▸▸',29'▴▴▴▴▴▴▸▸▸▸▸▸',30'▴▴▴▴▴▴▸▸▸▸▸▸',31'▾▾▾▾▾▾◆◆◆◆◆◆',32'▾▾▾▾▾▾◆◆◆◆◆◆',33'▾▾▾▾▾▾◆◆◆◆◆◆',34'▾▾▾▾▾▾◆◆◆◆◆◆'35);3637let vertical;38let horizontal; // stores the Jimp instances of the JGD images above.3940before(done => {41const img1 = jimp.read(verticalJGD);42const img2 = jimp.read(horizontalJGD);43Promise.all([img1, img2])44.then(images => {45vertical = images[0];46horizontal = images[1];47done();48})49.catch(done);50});5152const tests = {}; // Stores the expected result for each alignment combination.53tests['LEFT TOP'] = {54cover: {55verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▴▴▸▸', '▾▾◆◆'),56horiz: mkJGD('▴▴▴▸', '▴▴▴▸', '▾▾▾◆', '▾▾▾◆')57}58};59tests['CENTER TOP'] = {60cover: {61verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▴▴▸▸', '▾▾◆◆'),62horiz: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆')63}64};65tests['RIGHT TOP'] = {66cover: {67verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▴▴▸▸', '▾▾◆◆'),68horiz: mkJGD('▴▸▸▸', '▴▸▸▸', '▾◆◆◆', '▾◆◆◆')69}70};7172tests['LEFT MIDDLE'] = {73cover: {74verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆'),75horiz: mkJGD('▴▴▴▸', '▴▴▴▸', '▾▾▾◆', '▾▾▾◆')76}77};78tests['CENTER MIDDLE'] = {79cover: {80verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆'),81horiz: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆')82}83};84tests['RIGHT MIDDLE'] = {85cover: {86verti: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆'),87horiz: mkJGD('▴▸▸▸', '▴▸▸▸', '▾◆◆◆', '▾◆◆◆')88}89};9091tests['LEFT BOTTOM'] = {92cover: {93verti: mkJGD('▴▴▸▸', '▾▾◆◆', '▾▾◆◆', '▾▾◆◆'),94horiz: mkJGD('▴▴▴▸', '▴▴▴▸', '▾▾▾◆', '▾▾▾◆')95}96};97tests['CENTER BOTTOM'] = {98cover: {99verti: mkJGD('▴▴▸▸', '▾▾◆◆', '▾▾◆◆', '▾▾◆◆'),100horiz: mkJGD('▴▴▸▸', '▴▴▸▸', '▾▾◆◆', '▾▾◆◆')101}102};103tests['RIGHT BOTTOM'] = {104cover: {105verti: mkJGD('▴▴▸▸', '▾▾◆◆', '▾▾◆◆', '▾▾◆◆'),106horiz: mkJGD('▴▸▸▸', '▴▸▸▸', '▾◆◆◆', '▾◆◆◆')107}108};109110function runAlignTest(align) {111const jgdCoverV = tests[align].cover.verti;112const jgdCoverH = tests[align].cover.horiz;113let a = align.split(' ');114a = Jimp['HORIZONTAL_ALIGN_' + a[0]] | Jimp['VERTICAL_ALIGN_' + a[1]];115it('cover aligned to ' + align, () => {116vertical117.clone()118.cover(4, 4, a)119.getJGDSync()120.should.be.sameJGD(jgdCoverV, 'Vertical image');121horizontal122.clone()123.cover(4, 4, a)124.getJGDSync()125.should.be.sameJGD(jgdCoverH, 'Horizontal image');126});127}128129for (const align in tests) if (hasOwnProp(tests, align)) runAlignTest(align);130});131132133