Fanu2's picture
Deploy full app to HF Space
b456468
import { fabric } from 'fabric';
import Graphics from '@/graphics';
import Flip from '@/component/flip';
describe('Flip', () => {
let graphics, flip, mockImage;
beforeAll(() => {
graphics = new Graphics(document.createElement('canvas'));
flip = new Flip(graphics);
});
beforeEach(() => {
mockImage = new fabric.Image();
graphics.setCanvasImage('mockImage', mockImage);
});
it('should return current flip-setting', () => {
let setting = flip.getCurrentSetting();
expect(setting).toEqual({ flipX: false, flipY: false });
mockImage.set({ flipX: true });
setting = flip.getCurrentSetting();
expect(setting).toEqual({ flipX: true, flipY: false });
});
it('should set flip-setting', () => {
flip.set({ flipX: false, flipY: true });
expect(flip.getCurrentSetting()).toEqual({ flipX: false, flipY: true });
});
it('should reset flip-setting to false', () => {
mockImage.set({ flipX: true, flipY: true });
flip.reset();
expect(flip.getCurrentSetting()).toEqual({ flipX: false, flipY: false });
});
it('should be flipped over relative to the x-axis', () => {
flip.flipX();
expect(flip.getCurrentSetting()).toEqual({ flipX: true, flipY: false });
flip.flipX();
expect(flip.getCurrentSetting()).toEqual({ flipX: false, flipY: false });
});
it('should be flipped over relative to the y-axis', () => {
flip.flipY();
expect(flip.getCurrentSetting()).toEqual({ flipX: false, flipY: true });
flip.flipY();
expect(flip.getCurrentSetting()).toEqual({ flipX: false, flipY: false });
});
describe('Promise is returned with settings and angle,', () => {
beforeEach(() => {
mockImage.angle = 10;
});
it('should be changed if it is flipped over relative to the x-axis', async () => {
const obj = await flip.flipX();
expect(obj).toEqual({ flipX: true, flipY: false, angle: -10 });
});
it('should be changed if it is flipped over relative to the y-axis', async () => {
const obj = await flip.flipY();
expect(obj).toEqual({ flipX: false, flipY: true, angle: -10 });
});
it('should be changed if it is flipped over relative to the x-axis and y-axis', async () => {
const obj = await flip.set({ flipX: true, flipY: false });
expect(obj).toEqual({ flipX: true, flipY: false, angle: -10 });
});
});
});