From 579c8e68f9487ec6526ed0e848d427133ade2706 Mon Sep 17 00:00:00 2001 From: Utkarsh Goswami Date: Fri, 25 Aug 2017 16:12:49 +0530 Subject: [PATCH] Tests for Expense Claims [HR] (#10514) --- .../expense_claim/test_expense_claim.js | 59 +++++++++++++++++++ .../test_expense_claim_type.js | 30 ++++++++++ erpnext/tests/ui/tests.txt | 2 + 3 files changed, 91 insertions(+) create mode 100644 erpnext/hr/doctype/expense_claim/test_expense_claim.js create mode 100644 erpnext/hr/doctype/expense_claim_type/test_expense_claim_type.js diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.js b/erpnext/hr/doctype/expense_claim/test_expense_claim.js new file mode 100644 index 0000000000..c7c764cab5 --- /dev/null +++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.js @@ -0,0 +1,59 @@ +QUnit.module('hr'); + +QUnit.test("Test: Expense Claim [HR]", function (assert) { + assert.expect(3); + let done = assert.async(); + let employee_name; + let d; + frappe.run_serially([ + // Creating Expense Claim + () => frappe.set_route('List','Expense Claim','List'), + () => frappe.timeout(0.3), + () => frappe.click_button('Make a new Expense Claim'), + () => { + cur_frm.set_value('exp_approver','Administrator'), + cur_frm.set_value('is_paid',1), + cur_frm.set_value('expenses',[]), + d = frappe.model.add_child(cur_frm.doc,'Expense Claim Detail','expenses'), + d.expense_date = '2017-08-01', + d.expense_type = 'Test Expense Type 1', + d.description = 'This is just to test Expense Claim', + d.claim_amount = 2000, + d.sanctioned_amount=2000, + refresh_field('expenses'); + }, + () => frappe.timeout(2), + () => frappe.db.get_value('Employee', {'employee_name': 'Test Employee 1'}, 'name'), + (r) => { + employee_name = r.message.name; + }, + () => frappe.timeout(1), + () => cur_frm.set_value('employee',employee_name), + () => cur_frm.set_value('employee_name','Test Employee 1'), + () => cur_frm.set_value('company','Test Company'), + () => cur_frm.set_value('payable_account','Creditors - TC'), + () => cur_frm.set_value('cost_center','Main - TC'), + () => cur_frm.set_value('mode_of_payment','Cash'), + () => cur_frm.save(), + () => frappe.timeout(1), + () => cur_frm.set_value('approval_status','Approved'), + () => frappe.timeout(1), + () => cur_frm.save(), + // Submitting the Expense Claim + () => frappe.click_button('Submit'), + () => frappe.click_button('Yes'), + () => frappe.timeout(3), + + // Checking if the amount is correctly reimbursed for the employee + () => { + assert.equal(employee_name,cur_frm.get_field('employee').value, + 'Expense Claim is created for correct employee'); + assert.equal(1,cur_frm.get_field('is_paid').value, + 'Expense is paid as required'); + assert.equal(2000,cur_frm.get_field('total_amount_reimbursed').value, + 'Amount is reimbursed correctly'); + }, + () => done() + ]); +}); + diff --git a/erpnext/hr/doctype/expense_claim_type/test_expense_claim_type.js b/erpnext/hr/doctype/expense_claim_type/test_expense_claim_type.js new file mode 100644 index 0000000000..595454fca0 --- /dev/null +++ b/erpnext/hr/doctype/expense_claim_type/test_expense_claim_type.js @@ -0,0 +1,30 @@ +QUnit.module('hr'); + +QUnit.test("Test: Expense Claim Type [HR]", function (assert) { + assert.expect(1); + let done = assert.async(); + frappe.run_serially([ + // Creating a Expense Claim Type + () => { + frappe.tests.make('Expense Claim Type', [ + { expense_type: 'Test Expense Type 1'}, + { description:'This is just a test'}, + { accounts: [ + [ + { company: 'Test Company'}, + { default_account: 'Round Off - TC'} + ] + ]}, + ]); + }, + () => frappe.timeout(5), + + // Checking if the created type is present in the list + () => { + assert.equal('Test Expense Type 1', cur_frm.doc.expense_type, + 'Expense Claim Type created successfully'); + }, + () => done() + ]); +}); + diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt index 61ab529f11..12e2da8783 100644 --- a/erpnext/tests/ui/tests.txt +++ b/erpnext/tests/ui/tests.txt @@ -68,6 +68,8 @@ erpnext/hr/doctype/job_applicant/test_job_applicant.js erpnext/hr/doctype/offer_letter/test_offer_letter.js erpnext/hr/doctype/appraisal_template/test_appraisal_template.js erpnext/hr/doctype/appraisal/test_appraisal.js +erpnext/hr/doctype/expense_claim_type/test_expense_claim_type.js +erpnext/hr/doctype/expense_claim/test_expense_claim.js erpnext/hr/doctype/training_event/test_training_event.js erpnext/hr/doctype/training_result_employee/test_training_result.js erpnext/hr/doctype/training_feedback/test_training_feedback.js