| defmodule PlausibleWeb.TextHelpersTest do |
| use PlausibleWeb.ConnCase, async: true |
| alias PlausibleWeb.TextHelpers |
| doctest PlausibleWeb.TextHelpers |
|
|
| describe "number_format" do |
| test "numbers under 1000 stay the same" do |
| assert TextHelpers.number_format(0) == "0" |
| assert TextHelpers.number_format(1) == "1" |
| assert TextHelpers.number_format(123) == "123" |
| assert TextHelpers.number_format(999) == "999" |
| end |
|
|
| test "thousands get comma separator" do |
| assert TextHelpers.number_format(1_000) == "1,000" |
| assert TextHelpers.number_format(1_234) == "1,234" |
| assert TextHelpers.number_format(12_345) == "12,345" |
| assert TextHelpers.number_format(123_456) == "123,456" |
| end |
|
|
| test "millions get multiple comma separators" do |
| assert TextHelpers.number_format(1_000_000) == "1,000,000" |
| assert TextHelpers.number_format(1_234_567) == "1,234,567" |
| assert TextHelpers.number_format(12_345_678) == "12,345,678" |
| assert TextHelpers.number_format(123_456_789) == "123,456,789" |
| end |
|
|
| test "billions get multiple comma separators" do |
| assert TextHelpers.number_format(1_000_000_000) == "1,000,000,000" |
| assert TextHelpers.number_format(1_234_567_890) == "1,234,567,890" |
| assert TextHelpers.number_format(12_345_678_901) == "12,345,678,901" |
| end |
|
|
| test "handles negative numbers" do |
| assert TextHelpers.number_format(-1234) == "-1,234" |
| assert TextHelpers.number_format(-1_234_567) == "-1,234,567" |
| end |
|
|
| test "handles edge cases" do |
| assert TextHelpers.number_format(0) == "0" |
| assert TextHelpers.number_format(-0) == "0" |
| end |
| end |
| end |
|
|