UNPKG

@mcdevsl/mc-superset-ui

Version:
191 lines (189 loc) 3.78 kB
import { mergeMargin } from '@superset-ui/core/src'; describe('mergeMargin(margin1, margin2, mode?)', () => { it('combines two given margin', () => { expect( mergeMargin( { top: 1, left: 1, bottom: 2, right: 2, }, { top: 2, left: 2, bottom: 1, right: 1, }, ), ).toEqual({ top: 2, left: 2, bottom: 2, right: 2, }); }); describe('default values', () => { it('works if margin1 is not defined', () => { expect( mergeMargin(undefined, { top: 2, left: 2, bottom: 1, right: 1, }), ).toEqual({ top: 2, left: 2, bottom: 1, right: 1, }); }); it('works if margin2 is not defined', () => { expect( mergeMargin( { top: 1, left: 1, bottom: 2, right: 2, }, undefined, ), ).toEqual({ top: 1, left: 1, bottom: 2, right: 2, }); }); it('use 0 for the side that is not specified', () => { expect(mergeMargin({}, {})).toEqual({ top: 0, left: 0, bottom: 0, right: 0, }); }); }); describe('mode', () => { it('if mode=expand, returns the larger margin for each side', () => { expect( mergeMargin( { top: 1, left: 1, bottom: 2, right: 2, }, { top: 2, left: 2, bottom: 1, right: 1, }, 'expand', ), ).toEqual({ top: 2, left: 2, bottom: 2, right: 2, }); }); it('if mode=shrink, returns the smaller margin for each side', () => { expect( mergeMargin( { top: 1, left: 1, bottom: 2, right: 2, }, { top: 2, left: 2, bottom: 1, right: 1, }, 'shrink', ), ).toEqual({ top: 1, left: 1, bottom: 1, right: 1, }); }); it('expand by default', () => { expect( mergeMargin( { top: 1, left: 1, bottom: 2, right: 2, }, { top: 2, left: 2, bottom: 1, right: 1, }, ), ).toEqual({ top: 2, left: 2, bottom: 2, right: 2, }); }); }); it('works correctly for negative margins', () => { expect( mergeMargin( { top: -3, left: -3, bottom: -2, right: -2, }, { top: -2, left: -2, bottom: 0, right: -1, }, ), ).toEqual({ top: -2, left: -2, bottom: 0, right: -1, }); }); it('if there are NaN or null, use another value', () => { expect( mergeMargin( { top: 10, // @ts-ignore to let us pass `null` for testing left: null, bottom: 20, right: NaN, }, { top: NaN, left: 30, bottom: null, right: 40, }, ), ).toEqual({ top: 10, left: 30, bottom: 20, right: 40, }); }); });