From 9fdf44f495ea42f62c6081f3f417884375542c7a Mon Sep 17 00:00:00 2001
From: Bobbe <maxschlecht@web.de>
Date: Wed, 25 Oct 2023 02:16:15 +0200
Subject: [PATCH] Add currency formatting test

---
 InvenTree/InvenTree/tests.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py
index 584f69a246..b0ecab4116 100644
--- a/InvenTree/InvenTree/tests.py
+++ b/InvenTree/InvenTree/tests.py
@@ -330,6 +330,33 @@ class FormatTest(TestCase):
                 "PO-###-{test}",
             )
 
+    def test_currency_formatting(self):
+        """Test that currency formatting works correctly for multiple currencies"""
+
+        test_data = (
+            (Money(  3651.285718, "USD"), 4, "$3,651.2857"     ),  # noqa: E201,E202
+            (Money(487587.849178, "CAD"), 5, "CA$487,587.84918"),  # noqa: E201,E202
+            (Money(     0.348102, "EUR"), 1, "€0.3"            ),  # noqa: E201,E202
+            (Money(     0.916530, "GBP"), 1, "£0.9"            ),  # noqa: E201,E202
+            (Money(    61.031024, "JPY"), 3, "¥61.031"         ),  # noqa: E201,E202
+            (Money( 49609.694602, "JPY"), 1, "¥49,609.7"       ),  # noqa: E201,E202
+            (Money(155565.264777, "AUD"), 2, "A$155,565.26"    ),  # noqa: E201,E202
+            (Money(     0.820437, "CNY"), 4, "CN¥0.8204"       ),  # noqa: E201,E202
+            (Money(  7587.849178, "EUR"), 0, "€7,588"          ),  # noqa: E201,E202
+            (Money(     0.348102, "GBP"), 3, "£0.348"          ),  # noqa: E201,E202
+            (Money(     0.652923, "CHF"), 0, "CHF1"            ),  # noqa: E201,E202
+            (Money(     0.820437, "CNY"), 1, "CN¥0.8"          ),  # noqa: E201,E202
+            (Money(98789.5295680, "CHF"), 0, "CHF98,790"       ),  # noqa: E201,E202
+            (Money(     0.585787, "USD"), 1, "$0.6"            ),  # noqa: E201,E202
+            (Money(     0.690541, "CAD"), 3, "CA$0.691"        ),  # noqa: E201,E202
+            (Money(   427.814104, "AUD"), 5, "A$427.81410"     ),  # noqa: E201,E202
+        )
+
+        with self.settings(LANGUAGE_CODE="en-us"):
+            for value, decimal_places, expected_result in test_data:
+                result = InvenTree.format.format_money(value, decimal_places=decimal_places)
+                assert result == expected_result
+
 
 class TestHelpers(TestCase):
     """Tests for InvenTree helper functions."""