import { later, mount, triggerDrag } from '../../../test';
import FloatingPanel from '..';
test('should minHeight 100 and maxHeight 0.6 innerHeight when anchors props do not', async () => {
const wrapper = mount({
render() {
return Content;
},
});
expect(wrapper.html()).toMatchSnapshot();
expect((wrapper.element as HTMLDivElement).style.height).toBe(
`${Math.round(window.innerHeight * 0.6)}px`
);
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-100px'
);
});
test('should drag adsorption effect when anchors props is [100, 200, 400]', async () => {
const wrapper = mount({
render() {
return 内容;
},
});
expect(wrapper.html()).toMatchSnapshot();
expect((wrapper.element as HTMLDivElement).style.height).toBe('400px');
// drag 10
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, 10);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-100px'
);
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-100px'
);
// drag -49
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -49);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-100px'
);
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -199);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-200px'
);
// drag -300
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -200);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-400px'
);
// drag -500
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -500);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-400px'
);
});
test('should emit height-change when height change in anchors', async () => {
const wrapper = mount({
render() {
return (
this.$emit('change', h)}
>
Content
);
},
});
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -199);
await later();
expect((wrapper.element as HTMLDivElement).style.transform).toContain(
'-200px'
);
expect(wrapper.emitted('change')?.[0][0]).toEqual(200);
});
test('should only drag header when allowDraggingContent is false', async () => {
const wrapper = mount({
render() {
return (
this.$emit('change', h)}
contentDraggable={false}
>
Content
);
},
});
await triggerDrag(wrapper.find('.van-floating-panel__content'), 0, -199);
await later();
expect(wrapper.emitted('change')).toBeFalsy();
await triggerDrag(wrapper.find('.van-floating-panel__header'), 0, -199);
await later();
expect(wrapper.emitted('change')).toBeTruthy();
});