test: employee property update via Employee Promotion

This commit is contained in:
Rucha Mahabal 2022-04-22 16:28:25 +05:30
parent a93867de19
commit 833a33a94b

View File

@ -4,21 +4,22 @@
import unittest
import frappe
from frappe.tests.utils import FrappeTestCase
from frappe.utils import add_days, getdate
from erpnext.payroll.doctype.salary_structure.test_salary_structure import make_employee
class TestEmployeePromotion(unittest.TestCase):
class TestEmployeePromotion(FrappeTestCase):
def setUp(self):
self.employee = make_employee("employee@promotions.com")
frappe.db.sql("""delete from `tabEmployee Promotion`""")
frappe.db.delete("Employee Promotion")
def test_submit_before_promotion_date(self):
promotion_obj = frappe.get_doc(
employee = make_employee("employee@promotions.com")
promotion = frappe.get_doc(
{
"doctype": "Employee Promotion",
"employee": self.employee,
"employee": employee,
"promotion_details": [
{
"property": "Designation",
@ -29,10 +30,63 @@ class TestEmployeePromotion(unittest.TestCase):
],
}
)
promotion_obj.promotion_date = add_days(getdate(), 1)
promotion_obj.save()
self.assertRaises(frappe.DocstatusTransitionError, promotion_obj.submit)
promotion = frappe.get_doc("Employee Promotion", promotion_obj.name)
promotion.promotion_date = add_days(getdate(), 1)
self.assertRaises(frappe.DocstatusTransitionError, promotion.submit)
promotion.promotion_date = getdate()
promotion.submit()
self.assertEqual(promotion.docstatus, 1)
def test_employee_history(self):
for grade in ["L1", "L2"]:
frappe.get_doc({"doctype": "Employee Grade", "__newname": grade}).insert()
employee = make_employee(
"test_employee_promotion@example.com",
company="Test Company",
date_of_birth=getdate("30-09-1980"),
date_of_joining=getdate("01-10-2021"),
designation="Software Developer",
grade="L1",
salary_currency="INR",
annual_ctc="500000",
)
promotion = frappe.get_doc(
{
"doctype": "Employee Promotion",
"employee": employee,
"promotion_date": getdate(),
"revised_annual_ctc": "1000000",
"promotion_details": [
{
"property": "Designation",
"current": "Software Developer",
"new": "Project Manager",
"fieldname": "designation",
},
{"property": "Grade", "current": "L1", "new": "L2", "fieldname": "grade"},
],
}
).submit()
# employee fields updated
employee = frappe.get_doc("Employee", employee)
self.assertEqual(employee.grade, "L2")
self.assertEqual(employee.designation, "Project Manager")
self.assertEqual(employee.annual_ctc, 1000000)
# internal work history updated
self.assertEqual(employee.internal_work_history[0].designation, "Software Developer")
self.assertEqual(employee.internal_work_history[0].from_date, getdate("01-10-2021"))
self.assertEqual(employee.internal_work_history[1].designation, "Project Manager")
self.assertEqual(employee.internal_work_history[1].from_date, getdate())
promotion.cancel()
employee.reload()
# internal work history updated on cancellation
self.assertEqual(len(employee.internal_work_history), 1)
self.assertEqual(employee.internal_work_history[0].designation, "Software Developer")
self.assertEqual(employee.internal_work_history[0].from_date, getdate("01-10-2021"))