From dec88dcd980ac2faa0b91252acf1ebd7c908c90f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C5=BEe=20Fortun?= Date: Fri, 17 Jul 2020 13:35:53 +0200 Subject: [PATCH] Fix number sanitizer bug --- compose/service/values/sanitizer.go | 1 + compose/service/values/sanitizer_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/compose/service/values/sanitizer.go b/compose/service/values/sanitizer.go index b8010c4b1..edb297ca5 100644 --- a/compose/service/values/sanitizer.go +++ b/compose/service/values/sanitizer.go @@ -219,6 +219,7 @@ func (sanitizer) sNumber(v *types.RecordValue, f *types.ModuleField, m *types.Mo // In case of fractures, remove trailing 0's if strings.Contains(v.Value, ".") { v.Value = strings.TrimRight(v.Value, "0") + v.Value = strings.TrimRight(v.Value, ".") } return v diff --git a/compose/service/values/sanitizer_test.go b/compose/service/values/sanitizer_test.go index f5196e064..5f3fd99ee 100644 --- a/compose/service/values/sanitizer_test.go +++ b/compose/service/values/sanitizer_test.go @@ -143,6 +143,20 @@ func Test_sanitizer_Run(t *testing.T) { input: "42.4", output: "42", }, + { + name: "number precision; trailing .00", + kind: "Number", + options: map[string]interface{}{"precision": 2}, + input: "42.00", + output: "42", + }, + { + name: "number precision; trailing .040", + kind: "Number", + options: map[string]interface{}{"precision": 2}, + input: "42.040", + output: "42.04", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {