diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.js b/erpnext/hr/doctype/leave_application/test_leave_application.js new file mode 100644 index 0000000000..51e8ed623c --- /dev/null +++ b/erpnext/hr/doctype/leave_application/test_leave_application.js @@ -0,0 +1,50 @@ +QUnit.module('hr'); + +QUnit.test("Test: Leave application [HR]", function (assert) { + assert.expect(5); + let done = assert.async(); + let today_date = frappe.datetime.nowdate(); + let leave_date = frappe.datetime.add_days(today_date, 1); // leave for tomorrow + + frappe.run_serially([ + // test creating leave application + () => frappe.db.get_value('Employee', {'employee_name':'Test Employee 1'}, 'name'), + (employee) => { + return frappe.tests.make('Leave Application', [ + {leave_type: "Test Leave type"}, + {from_date: leave_date}, // for today + {to_date: leave_date}, + {half_day: 1}, + {employee: employee.message.name}, + {leave_approver: "Administrator"}, + {follow_via_email: 0} + ]); + }, + () => frappe.timeout(1), + // check calculated total leave days + () => assert.equal("0.5", cur_frm.doc.total_leave_days, + "leave application for half day"), + () => assert.ok(!cur_frm.doc.docstatus, + "leave application not submitted with status as open"), + () => cur_frm.set_value("status", "Approved"), // approve the application [as administrator] + () => frappe.timeout(0.5), + // save form + () => cur_frm.save(), + () => frappe.timeout(1), + () => cur_frm.savesubmit(), + () => frappe.timeout(1), + () => frappe.click_button('Yes'), + () => frappe.timeout(1), + () => assert.ok(cur_frm.doc.docstatus, + "leave application submitted after approval"), + // check auto filled posting date [today] + () => assert.equal(today_date, cur_frm.doc.posting_date, + "posting date correctly set"), + () => frappe.set_route("List", "Leave Application", "List"), + () => frappe.timeout(1), + // check approved application in list + () => assert.deepEqual(["Test Employee 1", "Approved"], [cur_list.data[0].employee_name, cur_list.data[0].status], + "leave for correct employee is approved"), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt index 60ca47cfda..a8c1a7e5bb 100644 --- a/erpnext/tests/ui/tests.txt +++ b/erpnext/tests/ui/tests.txt @@ -23,6 +23,7 @@ erpnext/hr/doctype/attendance/test_attendance.js erpnext/hr/doctype/leave_type/test_leave_type.js erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js erpnext/hr/doctype/leave_allocation/test_leave_allocation.js +erpnext/hr/doctype/leave_application/test_leave_application.js erpnext/schools/doctype/academic_year/test_academic_year.js erpnext/schools/doctype/academic_term/test_academic_term.js erpnext/schools/doctype/school_settings/test_school_settings.js