Added Lead fixture, Added test for Lead, Opportunity (#9607)

* 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
This commit is contained in:
Shivam Mishra 2017-07-11 10:33:07 +05:30 committed by Rushabh Mehta
parent 4a7b4efbec
commit 3fe5ecc611
2 changed files with 298 additions and 39 deletions

View File

@ -1,48 +1,216 @@
$.extend(frappe.test_data, {
'Customer': {
'Test Customer 1': [
{customer_name: 'Test Customer 1'}
"Customer": {
"Test Customer 1": [
{customer_name: "Test Customer 1"}
],
'Test Customer 2': [
{customer_name: 'Test Customer 2'}
"Test Customer 2": [
{customer_name: "Test Customer 2"}
],
'Test Customer 3': [
{customer_name: 'Test Customer 3'}
"Test Customer 3": [
{customer_name: "Test Customer 3"}
],
},
'Item': {
'Test Product 1': [
{item_code: 'Test Product 1'},
{item_group: 'Products'},
"Item": {
"Test Product 1": [
{item_code: "Test Product 1"},
{item_group: "Products"},
{is_stock_item: 1},
{standard_rate: 100},
{opening_stock: 100},
],
'Test Product 2': [
{item_code: 'Test Product 2'},
{item_group: 'Products'},
"Test Product 2": [
{item_code: "Test Product 2"},
{item_group: "Products"},
{is_stock_item: 1},
{standard_rate: 150},
{opening_stock: 200},
],
'Test Product 3': [
{item_code: 'Test Product 3'},
{item_group: 'Products'},
"Test Product 3": [
{item_code: "Test Product 3"},
{item_group: "Products"},
{is_stock_item: 1},
{standard_rate: 250},
{opening_stock: 100},
],
'Test Service 1': [
{item_code: 'Test Service 1'},
{item_group: 'Services'},
"Test Service 1": [
{item_code: "Test Service 1"},
{item_group: "Services"},
{is_stock_item: 0},
{standard_rate: 200}
],
'Test Service 2': [
{item_code: 'Test Service 2'},
{item_group: 'Services'},
"Test Service 2": [
{item_code: "Test Service 2"},
{item_group: "Services"},
{is_stock_item: 0},
{standard_rate: 300}
]
},
"Lead": {
"LEAD-00001": [
{lead_name: "Test Lead 1"}
],
"LEAD-00002": [
{lead_name: "Test Lead 2"}
],
"LEAD-00003": [
{lead_name: "Test Lead 3"}
]
},
"Address": {
"Test1-Billing": [
{address_title:"Test1"},
{address_type: "Billing"},
{address_line1: "Billing Street 1"},
{city: "Billing City 1"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 1"}
]
]}
],
"Test1-Shipping": [
{address_title:"Test1"},
{address_type: "Shipping"},
{address_line1: "Shipping Street 1"},
{city: "Shipping City 1"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 1"}
]
]}
],
"Test1-Warehouse": [
{address_title:"Test1"},
{address_type: "Warehouse"},
{address_line1: "Warehouse Street 1"},
{city: "Warehouse City 1"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 1"}
]
]}
],
"Test2-Billing": [
{address_title:"Test2"},
{address_type: "Billing"},
{address_line1: "Billing Street 2"},
{city: "Billing City 2"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 2"}
]
]}
],
"Test2-Shipping": [
{address_title:"Test2"},
{address_type: "Shipping"},
{address_line1: "Shipping Street 2"},
{city: "Shipping City 2"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 2"}
]
]}
],
"Test2-Warehouse": [
{address_title:"Test2"},
{address_type: "Warehouse"},
{address_line1: "Warehouse Street 2"},
{city: "Warehouse City 2"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 2"}
]
]}
]
},
"Contact": {
"Contact 1-Test Customer 1": [
{first_name: "Contact 1"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 1"}
]
]}
],
"Contact 2-Test Customer 1": [
{first_name: "Contact 2"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 1"}
]
]}
],
"Contact 1-Test Customer 2": [
{first_name: "Contact 1"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 2"}
]
]}
],
"Contact 2-Test Customer 2": [
{first_name: "Contact 2"},
{links: [
[
{link_doctype: "Customer"},
{link_name: "Test Customer 2"}
]
]}
],
},
"Price List": {
"Test-Buying-USD": [
{price_list_name: "Test-Buying-USD"},
{currency: "USD"},
{buying: "1"}
],
"Test-Buying-EUR": [
{price_list_name: "Test-Buying-EUR"},
{currency: "EUR"},
{buying: "1"}
],
"Test-Selling-USD": [
{price_list_name: "Test-Selling-USD"},
{currency: "USD"},
{selling: "1"}
],
"Test-Selling-EUR": [
{price_list_name: "Test-Selling-EUR"},
{currency: "EUR"},
{selling: "1"}
],
},
"Terms and Conditions": {
"Test Term 1": [
{title: "Test Term 1"}
],
"Test Term 2": [
{title: "Test Term 2"}
]
},
"Sales Taxes and Charges Template": {
"TEST In State GST": [
{title: "TEST In State GST"},
{taxes:[
[
{charge_type:"On Net Total"},
{account_head:"CGST - "+frappe.get_abbr(frappe.defaults.get_default("Company")) }
],
[
{charge_type:"On Net Total"},
{account_head:"SGST - "+frappe.get_abbr(frappe.defaults.get_default("Company")) }
]
]}
]
}
});
});

View File

@ -1,29 +1,120 @@
QUnit.module('sales');
QUnit.module("sales");
QUnit.test("test quotation", function(assert) {
assert.expect(2);
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([
() => frappe.tests.setup_doctype('Customer'),
() => frappe.tests.setup_doctype('Item'),
() => {
return frappe.tests.make('Quotation', [
{customer: 'Test Customer 1'},
{items: [
[
{'item_code': 'Test Product 1'},
{'qty': 5}
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');
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);
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()
]);
});
});