我需要模拟拖动和放大器使用量角器在周视图中放下fullcalendar。我找到了something的坐标,但我不喜欢"没有依赖浏览器窗口的解决方案" ...他们也没有办法找到本周的确切起始单元格按类别或ID查看...或者至少,我无法计算如何选择一天中某一行的单个单元格,因为使用Chrome的项目选择器,似乎每行都有相同的类fc-widget-content
和单元格不可选择"元素。
还有其他机会吗?
答案 0 :(得分:0)
也许这会有所帮助(也很晚;)。我也想用FullCalendar测试我的应用程序,但是我正在使用Cypress(类似于Protractor)。
我们从外部列表计划项目,并在特定的日期/时间将其分配到FullCalendar中的资源(我们使用调度程序插件)。
我发现drag
和drop
事件被代码以某种方式截获,例如通过事件的属性(例如日期,标题和其他)丰富了它。我如何丰富这些数据在Cypress trigger('drop', data)
命令中。数据是Draggable
类设置的evenData:
// Executed on the external list items, where every item we want to plan has class `.fc-event`.
this.draggableContainer = new Draggable(this.containerEl.nativeElement, {
itemSelector: '.fc-event',
eventData(eventEl) {
const id = eventEl.dataset.id;
return {
duration,
id: currentWorkItem.id,
title: currentWorkItem.description,
extendedProps: {
duration,
customRender: true,
data: currentWorkItem,
},
};
}
然后,在您的测试文件(赛普拉斯)中
const eventData = {
date: new Date(),
dateStr: new Date().toISOString(),
draggedEl: {
dataset: {
notificationId: '123',
priority: '0',
title: 'Test',
},
},
jsEvent: null,
resource: {
id: '123',
},
event: null,
oldEvent: null,
};
cy.get('.fc-event') // selector for the external event I want to drag in the calendar
.trigger('dragstart')
.get('.fc-time-grid table tr[data-time="07:00:00"] td.fc-widget-content:nth-child(2)') // selector for where I want to drop the event.
.trigger('drop', eventData) // this will fire the eventDrop event
因此,.trigger('drop', eventData)
将填写eventDrop信息。它与手动操作不完全相同,但对我有用。
注意事项:
resource: { id: 'my-resource-id' } }
中指定它。