import unittest

from pypos.modules.penjualan.services.diskon_service import DiskonService


# edited by glg
class DiskonServiceFormatGrosirTestCase(unittest.TestCase):
    def setUp(self):
        self.service = DiskonService()

    def test_format_keterangan_grosir_baseline_diambil_dari_tier_valid(self):
        data = [
            {
                "diskon_id": 25378,
                "minim": 80,
                "maxim": 100000,
                "harga_diskon": 72000.0,
                "nilai": 200.0,
                "persen": 10.5263,
                "harga_jual": 72200.0,
            },
            {
                "diskon_id": 25377,
                "minim": 40,
                "maxim": 79,
                "harga_diskon": 1800.0,
                "nilai": 100.0,
                "persen": 5.2631,
                "harga_jual": 1900.0,
            },
            {
                "diskon_id": 25376,
                "minim": 10,
                "maxim": 39,
                "harga_diskon": 1850.0,
                "nilai": 50.0,
                "persen": 2.6315,
                "harga_jual": 1900.0,
            },
        ]

        hasil = self.service.format_keterangan_grosir(data)
        lines = hasil.splitlines()

        self.assertEqual(lines[0], "1 s/d 9 harga Rp 1,900 belum dapat diskon")
        self.assertTrue(lines[1].startswith("10 s/d 39 harga Rp 1,850"))
        self.assertTrue(lines[2].startswith("40 s/d 79 harga Rp 1,800"))
        self.assertTrue(lines[3].startswith("80 s/d ~ harga Rp 1,700"))

    def test_format_keterangan_grosir_data_kosong(self):
        self.assertEqual(
            self.service.format_keterangan_grosir([]),
            "Tidak ada diskon grosir.",
        )


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