From 67e2ef30c4002f96ee33f5ecff72990f18216718 Mon Sep 17 00:00:00 2001 From: Shreya Shah Date: Mon, 14 Aug 2017 09:17:00 +0530 Subject: [PATCH] [UI test] Buying module - Get Supplier Quotations (#10375) * Get quotations for Suppliers * Calculate taxes and charges for Supplier quotations * Added paths for tests * Codacy fix * Improvised the page route function --- .../tests/test_supplier_quotation.js | 75 +++++++++++++++++++ ...upplier_quotation_for_taxes_and_charges.js | 62 +++++++++++++++ erpnext/tests/ui/tests.txt | 4 +- 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation.js create mode 100644 erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation_for_taxes_and_charges.js diff --git a/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation.js new file mode 100644 index 0000000000..81e512ba2c --- /dev/null +++ b/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation.js @@ -0,0 +1,75 @@ +QUnit.module('Buying'); + +QUnit.test("test: supplier quotation", function(assert) { + assert.expect(11); + let done = assert.async(); + let date; + + frappe.run_serially([ + () => { + date = frappe.datetime.add_days(frappe.datetime.now_date(), 10); + return frappe.tests.make('Supplier Quotation', [ + {supplier: 'Test Supplier'}, + {transaction_date: date}, + {company: 'Wind Power LLC'}, + {buying_price_list: 'Test-Buying-USD'}, + {currency: 'USD'}, + {items: [ + [ + {"item_code": 'Test Product 4'}, + {"qty": 5}, + {"uom": 'Unit'}, + {"rate": 200}, + {"warehouse": 'All Warehouses - WP'} + ] + ]}, + {apply_discount_on: 'Grand Total'}, + {additional_discount_percentage: 10}, + {tc_name: 'Test Term 1'}, + {terms: 'This is a term'} + ]); + }, + () => { + // Get Supplier details + assert.ok(cur_frm.doc.supplier == 'Test Supplier', "Supplier correct"); + assert.ok(cur_frm.doc.company == 'Wind Power LLC', "Company correct"); + // Get Contact details + assert.ok(cur_frm.doc.contact_display == 'Contact 3', "Conatct correct"); + assert.ok(cur_frm.doc.contact_email == 'test@supplier.com', "Email correct"); + // Get uom + assert.ok(cur_frm.doc.items[0].uom == 'Unit', "Multi uom correct"); + assert.ok(cur_frm.doc.total == 1000, "Total correct"); + // Calculate total after discount + assert.ok(cur_frm.doc.grand_total == 900, "Grand total correct"); + // Get terms + assert.ok(cur_frm.doc.tc_name == 'Test Term 1', "Terms correct"); + }, + + () => cur_frm.print_doc(), + () => frappe.timeout(1), + () => { + assert.ok($('.btn-print-print').is(':visible'), "Print Format Available"); + assert.ok($("table > tbody > tr > td:nth-child(3) > div").text().includes("Test Product 4"), "Print Preview Works As Expected"); + }, + () => cur_frm.print_doc(), + () => frappe.timeout(1), + () => frappe.click_button('Get items from'), + () => frappe.timeout(0.3), + () => frappe.click_link('Material Request'), + () => frappe.timeout(0.3), + () => frappe.click_button('Get Items'), + () => frappe.timeout(1), + () => { + // Get item from Material Requests + assert.ok(cur_frm.doc.items[1].item_name == 'Test Product 1', "Getting items from material requests work"); + }, + + () => cur_frm.save(), + () => frappe.timeout(1), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation_for_taxes_and_charges.js b/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation_for_taxes_and_charges.js new file mode 100644 index 0000000000..e1e393b67c --- /dev/null +++ b/erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation_for_taxes_and_charges.js @@ -0,0 +1,62 @@ +QUnit.module('Buying'); + +QUnit.test("test: supplier quotation with taxes and charges", function(assert) { + assert.expect(3); + let done = assert.async(); + let supplier_quotation_name; + + frappe.run_serially([ + () => { + return frappe.tests.make('Supplier Quotation', [ + {supplier: 'Test Supplier'}, + {items: [ + [ + {"item_code": 'Test Product 4'}, + {"qty": 5}, + {"rate": 100}, + {"warehouse": 'Stores - WP'}, + ] + ]}, + ]); + }, + () => {supplier_quotation_name = cur_frm.doc.name;}, + () => frappe.set_route('Form', 'Purchase Taxes and Charges Template', 'New Purchase Taxes and Charges Template'), + () => frappe.timeout(1), + () => { + return frappe.tests.set_form_values(cur_frm, [ + {title:'TEST In State GST'}, + {taxes: [ + [ + {"charge_type": 'On Net Total'}, + {"account_head": 'CGST - WP'} + ], + [ + {"charge_type": 'On Net Total'}, + {"account_head": 'SGST - WP'} + ] + ]}, + ]); + }, + () => cur_frm.save(), + () => frappe.set_route('Form', 'Supplier Quotation', supplier_quotation_name), + () => frappe.timeout(1), + () => { + return frappe.tests.set_form_values(cur_frm, [ + {taxes_and_charges:'TEST In State GST'} + ]); + }, + + () => { + assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct"); + assert.ok(cur_frm.doc.total_taxes_and_charges == 45, "Taxes and charges correct"); + assert.ok(cur_frm.doc.grand_total == 545, "Grand total correct"); + }, + + () => cur_frm.save(), + () => frappe.timeout(0.3), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt index e962ea62d6..0bc61fa88d 100644 --- a/erpnext/tests/ui/tests.txt +++ b/erpnext/tests/ui/tests.txt @@ -80,4 +80,6 @@ erpnext/schools/doctype/assessment_plan/test_assessment_plan.js erpnext/schools/doctype/assessment_result/test_assessment_result.js erpnext/schools/doctype/assessment_result_tool/test_assessment_result_tool.js erpnext/buying/doctype/supplier/test_supplier.js -erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.js \ No newline at end of file +erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.js +erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation.js +erpnext/buying/doctype/supplier_quotation/tests/test_supplier_quotation_for_taxes_and_charges.js \ No newline at end of file