@@ -66,6 +66,7 @@ describe('helper functions', () => {
6666 abodeElement . setAttribute ( 'data-prop-number-prop' , '12345' ) ;
6767 abodeElement . setAttribute ( 'data-prop-null-prop' , 'null' ) ;
6868 abodeElement . setAttribute ( 'data-prop-true-prop' , 'true' ) ;
69+ abodeElement . setAttribute ( 'data-prop-leading-zeros' , '0012' ) ;
6970 abodeElement . setAttribute ( 'data-prop-empty-prop' , '' ) ;
7071 abodeElement . setAttribute (
7172 'data-prop-json-prop' ,
@@ -79,6 +80,7 @@ describe('helper functions', () => {
7980 numberProp : 12345 ,
8081 nullProp : null ,
8182 trueProp : true ,
83+ leadingZeros : '0012' ,
8284 emptyProp : '' ,
8385 jsonProp : { id : 12345 , product : 'keyboard' , variant : { color : 'blue' } } ,
8486 } ) ;
@@ -94,6 +96,23 @@ describe('helper functions', () => {
9496 ) ;
9597 } ) ;
9698
99+ it ( 'getElementProps does not parse strings with leading zeros followed by other digits' , ( ) => {
100+ const strWithLeadingZeros = fc
101+ . tuple ( fc . integer ( 1 , 10 ) , fc . integer ( ) )
102+ . map ( t => {
103+ const [ numberOfZeros , integer ] = t ;
104+ return '0' . repeat ( numberOfZeros ) + integer . toString ( ) ;
105+ } ) ;
106+ fc . assert (
107+ fc . property ( strWithLeadingZeros , data => {
108+ const abodeElement = document . createElement ( 'div' ) ;
109+ abodeElement . setAttribute ( 'data-prop-test-prop' , data ) ;
110+ const props = getElementProps ( abodeElement ) ;
111+ expect ( props . testProp ) . toEqual ( data ) ;
112+ } )
113+ ) ;
114+ } ) ;
115+
97116 it ( 'setAttributes' , ( ) => {
98117 const abodeElement = document . createElement ( 'div' ) ;
99118
0 commit comments