Tests for Expense Claims [HR] (#10514)
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 0000000..c7c764c
--- /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 0000000..595454f
--- /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 61ab529..12e2da8 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -68,6 +68,8 @@
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