import unittest
from pathlib import Path


ROOT = Path(__file__).resolve().parents[1]


def source(path: str) -> str:
    return (ROOT / path).read_text(encoding="utf-8")


class EmployeePayrollApiTests(unittest.TestCase):
    def test_employee_and_payroll_routes_exist(self) -> None:
        employees_api = source("app/api/employees.py")
        payroll_api = source("app/api/payroll.py")
        payroll_service = source("app/services/payroll_service.py")
        main = source("app/main.py")

        self.assertIn('prefix="/api/employees"', employees_api)
        self.assertIn('prefix="/api/payroll"', payroll_api)
        self.assertIn("ird_number", employees_api)
        self.assertIn("kiwisaver_employer", payroll_api)
        self.assertIn('@router.post("/calculate")', payroll_api)
        self.assertIn("calculate_payroll", payroll_service)
        self.assertIn("app.include_router(employees_router)", main)
        self.assertIn("app.include_router(payroll_router)", main)


if __name__ == "__main__":
    unittest.main()
