47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
import { parseOffset } from '../../src/modifiers/offset';
|
||
|
|
||
|
const popperOffsets = {
|
||
|
top: 0,
|
||
|
left: 0,
|
||
|
right: 100,
|
||
|
bottom: 100,
|
||
|
width: 100,
|
||
|
height: 100,
|
||
|
};
|
||
|
|
||
|
const referenceOffsets = popperOffsets;
|
||
|
|
||
|
describe('parseOffset', () => {
|
||
|
it('parses `10px 10px` and throws deprecation warning', () => {
|
||
|
console.warn = jasmine.createSpy('warn');
|
||
|
expect(
|
||
|
parseOffset('10px 10px', referenceOffsets, popperOffsets, 'bottom')
|
||
|
).toEqual([10, 10]);
|
||
|
expect(console.warn).toHaveBeenCalledWith(
|
||
|
'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'
|
||
|
);
|
||
|
});
|
||
|
|
||
|
const cases = [
|
||
|
['10,10', [10, 10]],
|
||
|
['10px, -10px', [10, -10]],
|
||
|
['10px, 10px', [10, 10]],
|
||
|
['10px + 5%, 10px - 5%', [10 + 5, 10 - 5]],
|
||
|
['-10px + 5%, -10px - 5%', [-10 + 5, -10 - 5]],
|
||
|
['5%p, 5%r', [5, 5]],
|
||
|
['100%+50px, 100px-10+10%', [100 + 50, 100 - 10 + 10]],
|
||
|
['100% + 50% + 10%, 100%', [100 + 50 + 10, 100]],
|
||
|
['100%p - 10%r, 100%', [100 - 10, 100]],
|
||
|
['100%p - -10%r, 100%', [100 - -10, 100]],
|
||
|
['+10px - -10% + -10%r', [10 - -10 + -10, 0]],
|
||
|
];
|
||
|
|
||
|
cases.forEach(([input, output]) => {
|
||
|
it(`parses '${input}'`, () => {
|
||
|
expect(
|
||
|
parseOffset(input, referenceOffsets, popperOffsets, 'bottom')
|
||
|
).toEqual(output);
|
||
|
});
|
||
|
});
|
||
|
});
|