3fe5ecc611
* Added fixtures for Address and Contact * Fixed formatting errors * Added Test for terms, Added Tax and Terms fixture * Add tests for tax * Added Test for Print Format
120 lines
4.0 KiB
JavaScript
120 lines
4.0 KiB
JavaScript
QUnit.module("sales");
|
|
|
|
QUnit.test("test: lead", function (assert) {
|
|
assert.expect(1);
|
|
let done = assert.async();
|
|
let random = frappe.utils.get_random(10);
|
|
frappe.run_serially([
|
|
() => frappe.tests.setup_doctype("Lead"),
|
|
() => frappe.set_route("List", "Lead"),
|
|
() => frappe.new_doc("Lead"),
|
|
() => cur_frm.set_value("lead_name", random),
|
|
() => cur_frm.save(),
|
|
() => {
|
|
assert.ok(cur_frm.doc.lead_name.includes(random));
|
|
return done();
|
|
}
|
|
]);
|
|
});
|
|
|
|
QUnit.test("test: opportunity", function (assert) {
|
|
assert.expect(1);
|
|
let done = assert.async();
|
|
frappe.run_serially([
|
|
() => {
|
|
return frappe.tests.make("Opportunity", [{
|
|
enquiry_from: "Lead"
|
|
},
|
|
{
|
|
lead: "LEAD-00002"
|
|
}
|
|
]);
|
|
},
|
|
() => {
|
|
assert.ok(cur_frm.doc.lead === "LEAD-00002");
|
|
return done();
|
|
}
|
|
]);
|
|
});
|
|
|
|
QUnit.test("test: quotation", function (assert) {
|
|
assert.expect(18);
|
|
let done = assert.async();
|
|
frappe.run_serially([
|
|
() => frappe.tests.setup_doctype("Customer"),
|
|
() => frappe.tests.setup_doctype("Item"),
|
|
() => frappe.tests.setup_doctype("Address"),
|
|
() => frappe.tests.setup_doctype("Contact"),
|
|
() => frappe.tests.setup_doctype("Price List"),
|
|
() => frappe.tests.setup_doctype("Terms and Conditions"),
|
|
() => frappe.tests.setup_doctype("Sales Taxes and Charges Template"),
|
|
() => {
|
|
return frappe.tests.make("Quotation", [{
|
|
customer: "Test Customer 1"
|
|
},
|
|
{
|
|
items: [
|
|
[{
|
|
"item_code": "Test Product 1"
|
|
},
|
|
{
|
|
"qty": 5
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]);
|
|
},
|
|
() => {
|
|
// get_item_details
|
|
assert.ok(cur_frm.doc.items[0].item_name == "Test Product 1", "Added Test Product 1");
|
|
|
|
// calculate_taxes_and_totals
|
|
assert.ok(cur_frm.doc.grand_total === 500, "Total Amount is correct");
|
|
},
|
|
() => cur_frm.set_value("customer_address", "Test1-Billing"),
|
|
() => cur_frm.set_value("shipping_address_name", "Test1-Warehouse"),
|
|
() => cur_frm.set_value("contact_person", "Contact 1-Test Customer 1"),
|
|
() => cur_frm.set_value("currency", "USD"),
|
|
() => frappe.timeout(0.3),
|
|
() => cur_frm.set_value("selling_price_list", "Test-Selling-USD"),
|
|
() => frappe.timeout(0.5),
|
|
() => cur_frm.doc.items[0].rate = 200,
|
|
() => frappe.timeout(0.3),
|
|
() => cur_frm.set_value("tc_name", "Test Term 1"),
|
|
() => cur_frm.set_value("taxes_and_charges", "TEST In State GST"),
|
|
() => frappe.timeout(0.3),
|
|
() => cur_frm.save(),
|
|
() => {
|
|
// Check Address and Contact Info
|
|
assert.ok(cur_frm.doc.address_display.includes("Billing Street 1"), "Address Changed");
|
|
assert.ok(cur_frm.doc.shipping_address.includes("Warehouse Street 1"), "Address Changed");
|
|
assert.ok(cur_frm.doc.contact_display == "Contact 1", "Contact info changed");
|
|
|
|
// Check Currency
|
|
assert.ok(cur_frm.doc_currency == "USD", "Currency Changed");
|
|
assert.ok(cur_frm.doc.selling_price_list == "Test-Selling-USD", "Price List Changed");
|
|
assert.ok(cur_frm.doc.items[0].rate == 200, "Price Changed Manually");
|
|
assert.ok(cur_frm.doc.total == 1000, "New Total Calculated");
|
|
|
|
// Check Terms and Condtions
|
|
assert.ok(cur_frm.doc.tc_name == "Test Term 1", "Terms and Conditions Checked");
|
|
|
|
// Check Taxes
|
|
assert.ok(cur_frm.doc.taxes[0].account_head.includes("CGST"));
|
|
assert.ok(cur_frm.doc.taxes[1].account_head.includes("SGST"));
|
|
assert.ok(cur_frm.doc.grand_total == 1180, "Tax Amount Added to Total");
|
|
assert.ok(cur_frm.doc.taxes_and_charges == "TEST In State GST", "Tax Template Selected");
|
|
},
|
|
() => frappe.timeout(0.3),
|
|
() => cur_frm.print_doc(),
|
|
() => frappe.timeout(1),
|
|
() => assert.ok($('.btn-print-print').is(':visible'), "Print Format Available"),
|
|
() => assert.ok(RegExp(/QTN-\d\d\d\d\d/g).test($("#header-html small").text())),
|
|
() => assert.ok($(".important .text-right.value").text().includes("$ 1,180.00")),
|
|
() => assert.ok($(".section-break+ .section-break .column-break:nth-child(1) .data-field:nth-child(1) .value").text().includes("Billing Street 1"), "Print Preview Works As Expected"),
|
|
() => frappe.timeout(0.3),
|
|
() => cur_frm.print_doc(),
|
|
() => done()
|
|
]);
|
|
}); |