kivi.js: format/round/parse_amount, format/parse_date
[kivitendo-erp.git] / js / t / kivi / parse_amount.js
diff --git a/js/t/kivi/parse_amount.js b/js/t/kivi/parse_amount.js
new file mode 100644 (file)
index 0000000..d0c6e88
--- /dev/null
@@ -0,0 +1,83 @@
+QUnit.test("kivi.parse_amount function German number style with thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1.000,00' });
+
+  assert.equal(kivi.parse_amount('10,00'), 10, '10,00');
+  assert.equal(kivi.parse_amount('10,'), 10, '10,');
+  assert.equal(kivi.parse_amount('1010,00'), 1010, '1010,00');
+  assert.equal(kivi.parse_amount('1010,'), 1010, '1010,');
+  assert.equal(kivi.parse_amount('1.010,00'), 1010, '1.010,00');
+  assert.equal(kivi.parse_amount('1.010,'), 1010, '1.010,');
+  assert.equal(kivi.parse_amount('9.080.070.060.050.040.030.020.010,00'), 9080070060050040030020010, '9.080.070.060.050.040.030.020.010,00');
+  assert.equal(kivi.parse_amount('9.080.070.060.050.040.030.020.010,'), 9080070060050040030020010, '9.080.070.060.050.040.030.020.010,');
+
+  assert.equal(kivi.parse_amount('10,98'), 10.98, '10,98');
+  assert.equal(kivi.parse_amount('1010,98'), 1010.98, '1010,98');
+  assert.equal(kivi.parse_amount('1.010,98'), 1010.98, '1.010,98');
+
+  assert.equal(kivi.parse_amount('10,987654321'), 10.987654321, '10,987654321');
+  assert.equal(kivi.parse_amount('1010,987654321'), 1010.987654321, '1010,987654321');
+  assert.equal(kivi.parse_amount('1.010,987654321'), 1010.987654321, '1.010,987654321');
+});
+
+QUnit.test("kivi.parse_amount function German number style without thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1000,00' });
+
+  assert.equal(kivi.parse_amount('10,00'), 10, '10,00');
+  assert.equal(kivi.parse_amount('10,'), 10, '10,');
+  assert.equal(kivi.parse_amount('1010,00'), 1010, '1010,00');
+  assert.equal(kivi.parse_amount('1010,'), 1010, '1010,');
+  assert.equal(kivi.parse_amount('1.010,00'), 1010, '1.010,00');
+  assert.equal(kivi.parse_amount('1.010,'), 1010, '1.010,');
+  assert.equal(kivi.parse_amount('9.080.070.060.050.040.030.020.010,00'), 9080070060050040030020010, '9.080.070.060.050.040.030.020.010,00');
+  assert.equal(kivi.parse_amount('9.080.070.060.050.040.030.020.010,'), 9080070060050040030020010, '9.080.070.060.050.040.030.020.010,');
+
+  assert.equal(kivi.parse_amount('10,98'), 10.98, '10,98');
+  assert.equal(kivi.parse_amount('1010,98'), 1010.98, '1010,98');
+  assert.equal(kivi.parse_amount('1.010,98'), 1010.98, '1.010,98');
+
+  assert.equal(kivi.parse_amount('10,987654321'), 10.987654321, '10,987654321');
+  assert.equal(kivi.parse_amount('1010,987654321'), 1010.987654321, '1010,987654321');
+  assert.equal(kivi.parse_amount('1.010,987654321'), 1010.987654321, '1.010,987654321');
+});
+
+QUnit.test("kivi.parse_amount function English number style with thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1,000.00' });
+
+  assert.equal(kivi.parse_amount('10.00'), 10, '10.00');
+  assert.equal(kivi.parse_amount('10.'), 10, '10.');
+  assert.equal(kivi.parse_amount('1010.00'), 1010, '1010.00');
+  assert.equal(kivi.parse_amount('1010.'), 1010, '1010.');
+  assert.equal(kivi.parse_amount('1,010.00'), 1010, '1,010.00');
+  assert.equal(kivi.parse_amount('1,010.'), 1010, '1,010.');
+  assert.equal(kivi.parse_amount('9,080,070,060,050,040,030,020,010.00'), 9080070060050040030020010, '9,080,070,060,050,040,030,020,010.00');
+  assert.equal(kivi.parse_amount('9,080,070,060,050,040,030,020,010.'), 9080070060050040030020010, '9,080,070,060,050,040,030,020,010.');
+
+  assert.equal(kivi.parse_amount('10.98'), 10.98, '10.98');
+  assert.equal(kivi.parse_amount('1010.98'), 1010.98, '1010.98');
+  assert.equal(kivi.parse_amount('1,010.98'), 1010.98, '1,010.98');
+
+  assert.equal(kivi.parse_amount('10.987654321'), 10.987654321, '10.987654321');
+  assert.equal(kivi.parse_amount('1010.987654321'), 1010.987654321, '1010.987654321');
+  assert.equal(kivi.parse_amount('1,010.987654321'), 1010.987654321, '1,010.987654321');
+});
+
+QUnit.test("kivi.parse_amount function English number style without thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1000.00' });
+
+  assert.equal(kivi.parse_amount('10.00'), 10, '10.00');
+  assert.equal(kivi.parse_amount('10.'), 10, '10.');
+  assert.equal(kivi.parse_amount('1010.00'), 1010, '1010.00');
+  assert.equal(kivi.parse_amount('1010.'), 1010, '1010.');
+  assert.equal(kivi.parse_amount('1,010.00'), 1010, '1,010.00');
+  assert.equal(kivi.parse_amount('1,010.'), 1010, '1,010.');
+  assert.equal(kivi.parse_amount('9,080,070,060,050,040,030,020,010.00'), 9080070060050040030020010, '9,080,070,060,050,040,030,020,010.00');
+  assert.equal(kivi.parse_amount('9,080,070,060,050,040,030,020,010.'), 9080070060050040030020010, '9,080,070,060,050,040,030,020,010.');
+
+  assert.equal(kivi.parse_amount('10.98'), 10.98, '10.98');
+  assert.equal(kivi.parse_amount('1010.98'), 1010.98, '1010.98');
+  assert.equal(kivi.parse_amount('1,010.98'), 1010.98, '1,010.98');
+
+  assert.equal(kivi.parse_amount('10.987654321'), 10.987654321, '10.987654321');
+  assert.equal(kivi.parse_amount('1010.987654321'), 1010.987654321, '1010.987654321');
+  assert.equal(kivi.parse_amount('1,010.987654321'), 1010.987654321, '1,010.987654321');
+});