@@ -53,7 +53,7 @@ describe('react-currency-input', function(){
5353 } ) ;
5454
5555 it ( '<CurrencyInput> should have masked value of "123.456,789"' , function ( ) {
56- expect ( this . renderedComponent . getMaskedValue ( ) ) . to . equal ( '123.456, 789' )
56+ expect ( this . renderedComponent . getMaskedValue ( ) ) . to . equal ( '123.456. 789,000 ' )
5757 } ) ;
5858
5959 it ( '<input> should be of type "tel"' , function ( ) {
@@ -62,6 +62,91 @@ describe('react-currency-input', function(){
6262 } ) ;
6363
6464
65+ describe ( 'properly convert number value props into display values' , function ( ) {
66+
67+ it ( 'adds decimals to whole numbers to match precision' , function ( ) {
68+ var renderedComponent = ReactTestUtils . renderIntoDocument (
69+ < CurrencyInput precision = "2" value = { 123456789 } />
70+ ) ;
71+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '123,456,789.00' )
72+ } ) ;
73+
74+ it ( 'Does not change value when precision matches' , function ( ) {
75+ var renderedComponent = ReactTestUtils . renderIntoDocument (
76+ < CurrencyInput precision = "2" value = { 1234567.89 } />
77+ ) ;
78+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.89' )
79+ } ) ;
80+
81+
82+ it ( 'Rounds down properly when an number with extra decimals is passed in' , function ( ) {
83+ var renderedComponent = ReactTestUtils . renderIntoDocument (
84+ < CurrencyInput precision = "2" value = { 1234567.89123 } />
85+ ) ;
86+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.89' )
87+ } ) ;
88+
89+
90+ it ( 'Rounds up properly when an number with extra decimals is passed in' , function ( ) {
91+ var renderedComponent = ReactTestUtils . renderIntoDocument (
92+ < CurrencyInput precision = "2" value = { 1234567.89999 } />
93+ ) ;
94+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.90' )
95+ } ) ;
96+
97+ it ( 'Rounds up the whole number when an number with extra decimals is passed in' , function ( ) {
98+ var renderedComponent = ReactTestUtils . renderIntoDocument (
99+ < CurrencyInput precision = "0" value = { 1234567.89999 } />
100+ ) ;
101+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,568' )
102+ } ) ;
103+
104+ } ) ;
105+
106+
107+ describe ( 'properly convert string value props into display values' , function ( ) {
108+
109+ it ( 'adds decimals to whole numbers to match precision' , function ( ) {
110+ var renderedComponent = ReactTestUtils . renderIntoDocument (
111+ < CurrencyInput precision = "2" value = "6300" />
112+ ) ;
113+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '6,300.00' )
114+ } ) ;
115+
116+
117+ it ( 'Does not change value when precision matches' , function ( ) {
118+ var renderedComponent = ReactTestUtils . renderIntoDocument (
119+ < CurrencyInput precision = "2" value = "1234567.89" />
120+ ) ;
121+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.89' )
122+ } ) ;
123+
124+
125+ it ( 'Rounds down properly when an number with extra decimals is passed in' , function ( ) {
126+ var renderedComponent = ReactTestUtils . renderIntoDocument (
127+ < CurrencyInput precision = "2" value = "1234567.89123" />
128+ ) ;
129+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.89' )
130+ } ) ;
131+
132+
133+ it ( 'Rounds up properly when an number with extra decimals is passed in' , function ( ) {
134+ var renderedComponent = ReactTestUtils . renderIntoDocument (
135+ < CurrencyInput precision = "2" value = "1234567.89999" />
136+ ) ;
137+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,567.90' )
138+ } ) ;
139+
140+
141+ it ( 'Rounds up the whole number when an number with extra decimals is passed in' , function ( ) {
142+ var renderedComponent = ReactTestUtils . renderIntoDocument (
143+ < CurrencyInput precision = "0" value = "1234567.89999" />
144+ ) ;
145+ expect ( renderedComponent . getMaskedValue ( ) ) . to . equal ( '1,234,568' )
146+ } ) ;
147+
148+ } ) ;
149+
65150 describe ( 'change events' , function ( ) {
66151
67152 before ( 'render and locate element' , function ( ) {
0 commit comments