crm/static/tests/tours/crm_forecast_tour.js

90 lines
3.2 KiB
JavaScript

/** @odoo-module */
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_service/tour_utils";
const today = luxon.DateTime.now();
registry.category("web_tour.tours").add('crm_forecast', {
test: true,
url: "/web",
steps: () => [
stepUtils.showAppsMenuItem(),
{
trigger: ".o_app[data-menu-xmlid='crm.crm_menu_root']",
content: "open crm app",
}, {
trigger: '.dropdown-toggle[data-menu-xmlid="crm.crm_menu_report"]',
content: 'Open Reporting menu',
run: 'click',
}, {
trigger: '.dropdown-item[data-menu-xmlid="crm.crm_menu_forecast"]',
content: 'Open Forecast menu',
run: 'click',
}, {
trigger: '.o_column_quick_create:contains(Add next month)',
content: 'Wait page loading'
}, {
trigger: ".o-kanban-button-new",
content: "click create",
run: 'click',
}, {
trigger: ".o_field_widget[name=name] input",
content: "complete name",
run: "text Test Opportunity 1",
}, {
trigger: ".o_field_widget[name=expected_revenue] input",
content: "complete expected revenue",
run: "text 999999",
}, {
trigger: "button.o_kanban_edit",
content: "edit lead",
}, {
trigger: "div[name=date_deadline] input",
content: "complete expected closing",
run: `text ${today.toFormat("MM/dd/yyyy")}`,
}, {
trigger: "div[name=date_deadline] input",
content: "click to make the datepicker disappear",
run: "click"
}, {
trigger: '.o_back_button',
content: 'navigate back to the kanban view',
position: "bottom",
run: "click"
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Opportunity 1')",
content: "move to the next month",
run: function (actions) {
const undefined_groups = $('.o_column_title:contains("None")').length;
actions.drag_and_drop_native(`.o_opportunity_kanban .o_kanban_group:eq(${1 + undefined_groups})`, this.$anchor);
},
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Opportunity 1')",
content: "edit lead",
run: "click"
}, {
trigger: ".o_field_widget[name=date_deadline] input",
content: "complete expected closing",
run: function (actions) {
actions.text(`text ${today.plus({months: 5}).startOf('month').minus({days: 1}).toFormat("MM/dd/yyyy")}`, this.$anchor);
this.$anchor[0].dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Escape" }));
},
}, {
trigger: ".o_field_widget[name=probability] input",
content: "max out probability",
run: "text 100"
}, {
trigger: '.o_back_button',
content: 'navigate back to the kanban view',
position: "bottom",
run: "click"
}, {
trigger: '.o_kanban_add_column',
content: "add next month",
run: "click"
}, {
trigger: ".o_kanban_record:contains('Test Opportunity 1'):contains('Won')",
content: "assert that the opportunity has the Won banner",
run: function () {},
}
]});