From 5a27aead06fb768bdaa79e0ad880e20e52a34268 Mon Sep 17 00:00:00 2001 From: Utkarsh Goswami Date: Fri, 18 Aug 2017 13:12:53 +0530 Subject: [PATCH] Test for Process Payroll (#10447) --- .../process_payroll/test_process_payroll.js | 59 +++++++++++++++++++ erpnext/tests/ui/tests.txt | 1 + 2 files changed, 60 insertions(+) create mode 100644 erpnext/hr/doctype/process_payroll/test_process_payroll.js diff --git a/erpnext/hr/doctype/process_payroll/test_process_payroll.js b/erpnext/hr/doctype/process_payroll/test_process_payroll.js new file mode 100644 index 0000000000..7e23fb9c98 --- /dev/null +++ b/erpnext/hr/doctype/process_payroll/test_process_payroll.js @@ -0,0 +1,59 @@ +QUnit.module('hr'); + +QUnit.test("Test: Process Payroll [HR]", function (assert) { + assert.expect(5); + let done = assert.async(); + let net_pay; + + let check_amounts = (employee_name,net_amt,gross_amt) => { + frappe.run_serially([ + // Retrieving the actual amount from salary slip + () => frappe.db.get_value('Salary Slip', {'employee_name': employee_name}, 'net_pay'), + (r) => { + net_pay=r.message.net_pay; + }, + () => frappe.db.get_value('Salary Slip', {'employee_name': employee_name}, 'gross_pay'), + + // Checking if amounts are correctly calculated + (r) => { + assert.ok(net_pay==net_amt, + 'Net Pay is correctly calculated for '+employee_name); + assert.ok(r.message.gross_pay==gross_amt, + 'Gross Pay is correctly calculated for '+employee_name); + }, + ]); + }; + frappe.run_serially([ + + // Deleting the already generated Salary Slips for employees + () => frappe.set_route('List','Salary Slip'), + () => frappe.timeout(2), + () => { $('input.list-row-checkbox').click();}, + () => frappe.click_button('Delete'), + () => frappe.click_button('Yes'), + () => frappe.timeout(2), + () => assert.ok(cur_list.data.length==0,"Salary Slips successfully deleted"), + () => frappe.timeout(3), + + + // Creating Process Payroll for specific company + () => frappe.set_route('Form','Process Payroll'), + () => { + cur_frm.set_value('company','Test Company'), + frappe.timeout(1), + cur_frm.set_value('payroll_frequency','Monthly'), + cur_frm.set_value('start_date','2017-08-01'), + frappe.timeout(1), + cur_frm.set_value('end_date','2017-08-31'), + cur_frm.set_value('cost_center','Main-TC'), + frappe.timeout(1), + frappe.click_button('Create Salary Slip'); + }, + () => frappe.timeout(3), + () => check_amounts('Test Employee 1','19200','24000'), + () => frappe.timeout(3), + () => check_amounts('Test Employee 3','23040','28800'), + () => frappe.timeout(4), + () => done() + ]); +}); diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt index d34bb4e6cc..6bae3c5c39 100644 --- a/erpnext/tests/ui/tests.txt +++ b/erpnext/tests/ui/tests.txt @@ -67,6 +67,7 @@ erpnext/schools/doctype/course/test_course.js erpnext/schools/doctype/program/test_program.js erpnext/hr/doctype/salary_structure/test_salary_structure.js erpnext/hr/doctype/salary_slip/test_salary_slip.js +erpnext/hr/doctype/process_payroll/test_process_payroll.js erpnext/hr/doctype/job_opening/test_job_opening.js erpnext/hr/doctype/job_applicant/test_job_applicant.js erpnext/hr/doctype/offer_letter/test_offer_letter.js