Skip to content

Commit db361bc

Browse files
committed
PAYEE-1047: allows users numbers with spaces and 1 or 2 decimals
1 parent 404a5ec commit db361bc

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

app/uk/gov/hmrc/tai/util/FormHelper.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ object FormHelper {
4444

4545
def isCurrency(stringValue: String, isWholeNumRequired: Boolean): Boolean = {
4646
val currencyRegex: String = "^\\£?(([1-9]\\d{0,2}(,\\d{3})*)|(([1-9]\\d*)?\\d))?"
47-
val regex: String = if (isWholeNumRequired) currencyRegex else currencyRegex + "(\\.\\d\\d)?"
47+
val regex: String = if (isWholeNumRequired) currencyRegex else currencyRegex + "(\\.\\d{1,2})?"
4848

49-
stringValue matches regex.r.toString()
49+
stringValue.replaceAll("\\s", "") matches regex.r.toString()
5050
}
5151

5252
def convertCurrencyToInt(value: Option[String]): Int =

test/uk/gov/hmrc/tai/util/FormHelperSpec.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ class FormHelperSpec extends PlaySpec {
3737
FormHelper.stripNumber(Some("£90")) mustBe Some("90")
3838
}
3939

40+
"return striped number without spaces" in {
41+
FormHelper.stripNumber(Some("£90 000")) mustBe Some("90000")
42+
}
43+
4044
"return striped number without commas" in {
4145
FormHelper.stripNumber(Some("999,999")) mustBe Some("999999")
4246
}
@@ -66,33 +70,40 @@ class FormHelperSpec extends PlaySpec {
6670
}
6771

6872
" allow if pound symbol is at the start of the form" in {
73+
FormHelper.isCurrency("£99 999", isWholeNumRequired = false) mustBe true
6974
FormHelper.isCurrency("£99,999", isWholeNumRequired = false) mustBe true
7075
FormHelper.isCurrency("£99,999.00", isWholeNumRequired = false) mustBe true
7176
FormHelper.isCurrency("£99,999,999.00", isWholeNumRequired = false) mustBe true
7277
}
7378

7479
" allowed plain positive number with only 2 decimal places when whole Number required is false " in {
80+
FormHelper.isCurrency("110 000", isWholeNumRequired = false) mustBe true
7581
FormHelper.isCurrency("110000", isWholeNumRequired = false) mustBe true
7682
FormHelper.isCurrency("110000.00", isWholeNumRequired = false) mustBe true
7783
FormHelper.isCurrency("110000.99", isWholeNumRequired = false) mustBe true
7884

79-
FormHelper.isCurrency("110000.9", isWholeNumRequired = false) mustBe false
85+
FormHelper.isCurrency("110000.9", isWholeNumRequired = false) mustBe true
86+
FormHelper.isCurrency("1 1 0 0 0 0 . 9", isWholeNumRequired = false) mustBe true
8087
FormHelper.isCurrency("110000.999", isWholeNumRequired = false) mustBe false
8188
FormHelper.isCurrency("-110000", isWholeNumRequired = false) mustBe false
8289
FormHelper.isCurrency("-110000.00", isWholeNumRequired = false) mustBe false
90+
FormHelper.isCurrency("-110 000.00", isWholeNumRequired = false) mustBe false
8391
}
8492

8593
" allow only positive whole Number when wholeNumberRequired is true " in {
94+
FormHelper.isCurrency("110 000", isWholeNumRequired = true) mustBe true
8695
FormHelper.isCurrency("110000", isWholeNumRequired = true) mustBe true
8796
FormHelper.isCurrency("110000.9", isWholeNumRequired = true) mustBe false
8897
FormHelper.isCurrency("110000.99", isWholeNumRequired = true) mustBe false
8998
FormHelper.isCurrency("110000.999", isWholeNumRequired = true) mustBe false
9099
FormHelper.isCurrency("-110000", isWholeNumRequired = false) mustBe false
91100
FormHelper.isCurrency("-110000.00", isWholeNumRequired = false) mustBe false
101+
FormHelper.isCurrency("-110 000.00", isWholeNumRequired = false) mustBe false
92102
}
93103

94104
"fail if value entered is not a number" in {
95105
FormHelper.isCurrency("99.paul", isWholeNumRequired = true) mustBe false
106+
FormHelper.isCurrency("9 9.paul", isWholeNumRequired = true) mustBe false
96107
FormHelper.isCurrency("9.!!", isWholeNumRequired = false) mustBe false
97108
}
98109
}
@@ -117,9 +128,10 @@ class FormHelperSpec extends PlaySpec {
117128
}
118129

119130
"areEqual" must {
120-
"be the same, ignoring commmas and dots" in {
131+
"be the same, ignoring spaces, commmas and dots" in {
121132
FormHelper.areEqual(Some("123"), Some("123")) mustBe true
122133
FormHelper.areEqual(Some("1,23"), Some("1,23")) mustBe true
134+
FormHelper.areEqual(Some("1 234"), Some("1234")) mustBe true
123135
}
124136

125137
"not be the same" in {

0 commit comments

Comments
 (0)