Odoo18-Base/addons/calendar/static/tests/tours/calendar_tour.js
2025-03-10 11:12:23 +07:00

156 lines
4.0 KiB
JavaScript

/** @odoo-module **/
import tour from 'web_tour.tour';
const todayDate = function() {
let now = new Date();
let year = now.getFullYear();
let month = String(now.getMonth() + 1).padStart(2, '0');
let day = String(now.getDate()).padStart(2, '0');
return `${month}/${day}/${year} 10:00:00`;
};
tour.register('calendar_appointments_hour_tour', {
url: '/web',
test: true,
}, [
tour.stepUtils.showAppsMenuItem(),
{
trigger: '.o_app[data-menu-xmlid="calendar.mail_menu_calendar"]',
content: 'Open Calendar',
run: 'click',
},
{
trigger: '.o-calendar-button-new',
content: 'Create a new event',
run: 'click',
},
{
trigger: '#name',
content: 'Give a name to the new event',
run: 'text TEST EVENT',
},
{
trigger: '#start',
content: 'Give a date to the new event',
run: `text ${todayDate()}`,
},
{
trigger: '.fa-cloud-upload',
content: 'Save the new event',
run: 'click',
},
{
trigger: '.dropdown-item:contains("Calendar")',
content: 'Go back to Calendar view',
run: 'click',
},
{
trigger: '.dropdown-toggle:contains("Week")',
content: 'Click to change calendar view',
run: 'click',
},
{
trigger: '.dropdown-item:contains("Month")',
content: 'Change the calendar view to Month',
run: 'click',
},
{
trigger: '.fc-day-header:contains("Monday")',
content: 'Change the calendar view to week',
},
{
trigger: '.fc-time:contains("10:00")',
content: 'Check the time is properly displayed',
},
{
trigger: '.o_event_title:contains("TEST EVENT")',
content: 'Check the event title',
},
]);
tour.register('test_calendar_delete_tour', {
test: true,
},
[
{
content: 'Select filter (everybody)',
trigger: 'div[data-value="all"] input',
},
{
content: 'Click on the event (focus + waiting)',
trigger: 'a .fc-content:contains("Test Event")',
async run() {
$('a .fc-content:contains("Test Event")').click();
await new Promise((r) => setTimeout(r, 1000));
$('a .fc-content:contains("Test Event")').click();
}
},
{
content: 'Delete the event',
trigger: '.o_cw_popover_delete',
},
{
content: 'Validate the deletion',
trigger:'button:contains("Ok")',
async run() {
$('button:contains("Ok")').click();
await new Promise((r) => setTimeout(r, 1000));
}
},
]);
tour.register('test_calendar_decline_tour', {
test: true,
},
[
{
content: 'Click on the event (focus + waiting)',
trigger: 'a .fc-content:contains("Test Event")',
async run() {
$('a .fc-content:contains("Test Event")').click();
await new Promise((r) => setTimeout(r, 1000));
$('a .fc-content:contains("Test Event")').click();
}
},
{
content: 'Delete the event',
trigger: '.o_cw_popover_delete',
},
{
content: 'Wait declined status',
trigger: '.o_attendee_status_declined',
},
]);
tour.register('test_calendar_decline_with_everybody_filter_tour', {
test: true,
},
[
{
content: 'Select filter (everybody)',
trigger: 'div[data-value="all"] input',
},
{
content: 'Click on the event (focus + waiting)',
trigger: 'a .fc-content:contains("Test Event")',
async run() {
$('a .fc-content:contains("Test Event")').click();
await new Promise((r) => setTimeout(r, 1000));
$('a .fc-content:contains("Test Event")').click();
}
},
{
content: 'Delete the event',
trigger: '.o_cw_popover_delete',
},
{
content: 'Select filter (everybody)',
trigger: 'div[data-value="all"] input',
},
{
content: 'Wait declined status',
trigger: '.o_attendee_status_declined',
},
]);