from decimal import Decimal
from django.test import SimpleTestCase

from apps.payroll.forms import PayrollAdjustmentForm


class PayrollAdjustmentFormTests(SimpleTestCase):
    def test_positive_earning_adjustment_is_valid(self):
        form = PayrollAdjustmentForm(data={
            'adjustment_type': 'EARNING', 'amount': '500.00',
            'reason': 'Approved salary correction', 'reference_no': 'HR-123',
        })
        self.assertTrue(form.is_valid(), form.errors)

    def test_invalid_kind_is_rejected(self):
        form = PayrollAdjustmentForm(data={
            'adjustment_type': 'OTHER', 'amount': '500.00',
            'reason': 'Approved salary correction', 'reference_no': '',
        })
        self.assertFalse(form.is_valid())

    def test_zero_amount_is_rejected(self):
        form = PayrollAdjustmentForm(data={
            'adjustment_type': 'DEDUCTION', 'amount': '0',
            'reason': 'Valid reason', 'reference_no': '',
        })
        self.assertFalse(form.is_valid())
