Files
Odoo-Modules/Fusion Accounting/static/tests/tours/test_tour_bank_rec_widget.js
2026-02-22 01:22:18 -05:00

237 lines
8.3 KiB
JavaScript

/** @odoo-module **/
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_service/tour_utils";
import { accountTourSteps } from "@account/js/tours/account";
registry.category("web_tour.tours").add("fusion_accounting_bank_rec_widget", {
url: "/odoo",
steps: () => [
stepUtils.showAppsMenuItem(),
...accountTourSteps.goToAccountMenu("Open the accounting module"),
// Open the widget. The first line should be selected by default.
{
trigger: ".o_breadcrumb",
},
{
content: "Open the bank reconciliation widget",
trigger: "button.btn-secondary[name='action_open_reconcile']",
run: "click",
},
{
trigger: "div[name='line_ids']",
},
{
content: "The 'line1' should be selected by default",
trigger: "div[name='line_ids'] td[field='name']:contains('line1')",
},
// Test 1: Check the loading of lazy notebook tabs.
// Check 'amls_tab' (active by default).
{
trigger: "div.bank_rec_widget_form_amls_list_anchor table.o_list_table",
},
{
content: "The 'amls_tab' should be active and the inner list view loaded",
trigger: "a.active[name='amls_tab']",
},
// Check 'discuss_tab'.
{
trigger: "a.active[name='amls_tab']",
},
{
content: "Click on the 'discuss_tab'",
trigger: "a[name='discuss_tab']",
run: "click",
},
{
trigger: "a.active[name='discuss_tab']",
},
{
content: "The 'discuss_tab' should be active and the chatter loaded",
trigger: "div.bank_rec_widget_form_discuss_anchor div.o-mail-Chatter",
},
// Check 'manual_operations_tab'.
{
trigger: "tr.o_bank_rec_auto_balance_line",
},
{
content: "Click on the 'auto_balance' to make the 'manual_operations_tab' visible",
trigger: "tr.o_bank_rec_auto_balance_line td[field='name']",
run: "click",
},
{
content: "The 'manual_operations_tab' should be active",
trigger: "a.active[name='manual_operations_tab']",
},
{
content: "The 'name' field should be focus automatically",
trigger: "div.o_notebook div[name='name'] input:focus",
},
{
trigger: "tr.o_bank_rec_auto_balance_line",
},
{
content: "Click on the 'credit' field to change the focus from 'name' to 'amount_currency'",
trigger: "tr.o_bank_rec_auto_balance_line td[field='credit']",
run: "click",
},
{
content: "Wait to avoid non-deterministic errors on the next step",
trigger: "tr.o_bank_rec_auto_balance_line td[field='credit']",
},
{
content: "The 'balance' field should be focus now",
trigger: "div.o_notebook div[name='amount_currency'] input:focus",
},
// Test 2: Test validation + auto select the next line.
{
trigger: "a.active[name='manual_operations_tab']",
},
{
content: "Click on the 'amls_tab'",
trigger: "a[name='amls_tab']",
run: "click",
},
{
trigger: "a.active[name='amls_tab']",
},
{
content: "Mount INV/2019/00002",
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table td[name='move_id']:contains('INV/2019/00002')",
run: "click",
},
{
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table tr.o_rec_widget_list_selected_item td[name='move_id']:contains('INV/2019/00002')",
},
{
content: "Check INV/2019/00002 is well marked as selected",
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table tr.o_rec_widget_list_selected_item td[name='move_id']:contains('INV/2019/00002')",
},
{
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table tr.o_rec_widget_list_selected_item td[name='move_id']:contains('INV/2019/00002')",
},
{
content: "Remove INV/2019/00002",
trigger: "tr td.o_list_record_remove button",
run: "click",
},
{
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table tr:not(.o_rec_widget_list_selected_item) td[name='move_id']:contains('INV/2019/00002')",
},
{
content: "Mount INV/2019/00001",
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table td[name='move_id']:contains('INV/2019/00001')",
run: "click",
},
{
trigger:
"div.bank_rec_widget_form_amls_list_anchor table.o_list_table tr.o_rec_widget_list_selected_item td[name='move_id']:contains('INV/2019/00001')",
},
{
content: "Validate",
trigger: "button:contains('Validate')",
run: "click",
},
{
trigger: "div[name='line_ids'] td[field='name']:contains('line2')",
},
{
content: "The 'line2' is the next not already reconciled line",
trigger: "div[name='line_ids'] td[field='name']:contains('line2')",
},
// Test 3: Test manual operations tab.
{
content: "Click on 'credit'",
trigger: "div[name='line_ids'] td[field='credit']:last",
run: "click",
},
{
content:
"The 'manual_operations_tab' should be active now and the auto_balance line mounted in edit",
trigger: "a.active[name='manual_operations_tab']",
},
{
content: "The last line should be selected",
trigger: "div[name='line_ids'] tr.o_bank_rec_selected_line",
},
{
content: "Search for 'partner_a'",
trigger: "div[name='partner_id'] input",
run: "edit partner_a",
},
{
trigger: ".ui-autocomplete .o_m2o_dropdown_option a:contains('Create')",
},
{
content: "Select 'partner_a'",
trigger: ".ui-autocomplete:visible li:contains('partner_a')",
run: "click",
},
{
trigger:
"tr:not(.o_bank_rec_auto_balance_line) td[field='partner_id']:contains('partner_a')",
},
{
content: "Select the payable account",
trigger: "button:contains('Payable')",
run: "click",
},
{
trigger:
"tr:not(.o_bank_rec_auto_balance_line) td[field='account_id']:contains('Payable')",
},
{
content: "Enter a tax",
trigger: "div[name='tax_ids'] input",
run: "edit 15",
},
{
trigger: ".ui-autocomplete",
},
{
content: "Select 'Tax 15% (Sales)'",
trigger: ".ui-autocomplete:visible li:contains('Sales')",
run: "click",
},
{
content: "Tax column appears in list of lines",
trigger: "div[name='line_ids'] td[field='tax_ids']",
},
{
content: "Wait to avoid non-deterministic errors on the next step",
trigger: "div[name='line_ids'] td:contains('Tax Received')",
},
{
trigger: "button.btn-primary:contains('Validate')",
},
{
content: "Validate",
trigger: "button:contains('Validate')",
run: "click",
},
{
trigger: "div[name='line_ids'] td[field='name']:contains('line3')",
},
{
content: "The 'line3' is the next not already reconciled line",
trigger: "div[name='line_ids'] td[field='name']:contains('line3')",
},
...stepUtils.toggleHomeMenu(),
...accountTourSteps.goToAccountMenu("Reset back to accounting module"),
{
content: "check that we're back on the dashboard",
trigger: 'a:contains("Customer Invoices")',
},
],
});