@@ -6,8 +6,9 @@ describe('Directive', () => {
66 let wrapper
77 const inputListener = jest . fn ( )
88
9- const buildWrapper = ( { template, mask = '##.##' , value = '' , ...rest } = { } ) => {
10- if ( ! template ) template = `<input v-facade="mask" value="${ value } " @input="inputListener" />`
9+ const buildWrapper = ( { template, mask = '##.##' , modifiers, value = '' , ...rest } = { } ) => {
10+ const directive = modifiers ? `v-facade.${ modifiers } ` : 'v-facade'
11+ if ( ! template ) template = `<input ${ directive } ="mask" value="${ value } " @input="inputListener" />`
1112
1213 const component = {
1314 template,
@@ -67,26 +68,37 @@ describe('Directive', () => {
6768 expect ( wrapper . element . unmaskedValue ) . toBe ( '1122' )
6869 } )
6970
70- test ( 'Should honor short modifier' , async ( ) => {
71- buildWrapper ( {
72- template : `<input v-facade.short="mask" value="12" @input="inputListener" />`
73- } )
74- expect ( wrapper . element . value ) . toBe ( '12' )
75-
76- wrapper . element . value = '1234'
77- wrapper . find ( 'input' ) . trigger ( 'input' )
78-
79- expect ( wrapper . element . value ) . toBe ( '12.34' )
80- expect ( wrapper . element . unmaskedValue ) . toBe ( '1234' )
81- } )
82-
8371 test ( 'Should not update the cursor position if not the active element' , ( ) => {
8472 buildWrapper ( { value : 'ABCDE' } )
8573
8674 jest . spyOn ( wrapper . element , 'setSelectionRange' )
8775 expect ( wrapper . element . setSelectionRange ) . not . toBeCalled ( )
8876 } )
8977
78+ describe ( 'Directive Modifiers' , ( ) => {
79+ test ( 'Should honor short modifier' , async ( ) => {
80+ buildWrapper ( { modifiers : 'short' , value : '12' } )
81+ expect ( wrapper . element . value ) . toBe ( '12' )
82+
83+ wrapper . element . value = '1234'
84+ wrapper . find ( 'input' ) . trigger ( 'input' )
85+
86+ expect ( wrapper . element . value ) . toBe ( '12.34' )
87+ expect ( wrapper . element . unmaskedValue ) . toBe ( '1234' )
88+ } )
89+
90+ test ( 'Should honor prepend modifier' , async ( ) => {
91+ buildWrapper ( { modifiers : 'prepend' , mask : '+1 ###' , value : '' } )
92+ expect ( wrapper . element . value ) . toBe ( '+1 ' )
93+
94+ wrapper . element . value = '777'
95+ wrapper . find ( 'input' ) . trigger ( 'input' )
96+
97+ expect ( wrapper . element . value ) . toBe ( '+1 777' )
98+ expect ( wrapper . element . unmaskedValue ) . toBe ( '777' )
99+ } )
100+ } )
101+
90102 describe ( 'Cursor updates' , ( ) => {
91103 let element
92104
0 commit comments