@@ -11,7 +11,7 @@ describe('useFormValues()', () => {
1111 setup ( ) {
1212 useForm ( ) ;
1313 const { value } = useField ( 'test' , validate ) ;
14- const values = useFormValues ( ) ;
14+ const { values } = useFormValues ( ) ;
1515
1616 return {
1717 value,
@@ -33,12 +33,72 @@ describe('useFormValues()', () => {
3333 expect ( valueSpan ?. textContent ) . toBe ( inputValue ) ;
3434 } ) ;
3535
36+ test ( 'can set a single field value' , async ( ) => {
37+ mountWithHoc ( {
38+ setup ( ) {
39+ useForm ( ) ;
40+ const { value } = useField ( 'test' , validate ) ;
41+ const { values, setFieldValue } = useFormValues ( ) ;
42+
43+ return {
44+ value,
45+ values,
46+ setFieldValue,
47+ } ;
48+ } ,
49+ template : `
50+ <input name="field" v-model="value" />
51+ <span>{{ values.test }}</span>
52+ <button @click="setFieldValue('test', '5')"></button>
53+ ` ,
54+ } ) ;
55+
56+ await flushPromises ( ) ;
57+ const btn = document . querySelector ( 'button' ) ;
58+ const input = document . querySelector ( 'input' ) ;
59+ const valueSpan = document . querySelector ( 'span' ) ;
60+ btn ?. click ( ) ;
61+ await flushPromises ( ) ;
62+ expect ( valueSpan ?. textContent ) . toBe ( '5' ) ;
63+ expect ( input ?. value ) . toBe ( '5' ) ;
64+ } ) ;
65+
66+ test ( 'can set multiple fields values' , async ( ) => {
67+ mountWithHoc ( {
68+ setup ( ) {
69+ useForm ( ) ;
70+ const { value } = useField ( 'test' , validate ) ;
71+ const { values, setValues } = useFormValues ( ) ;
72+
73+ return {
74+ value,
75+ values,
76+ setValues,
77+ } ;
78+ } ,
79+ template : `
80+ <input name="field" v-model="value" />
81+ <span>{{ values.test }}</span>
82+ <button @click="setValues({ 'test': '5' })"></button>
83+ ` ,
84+ } ) ;
85+
86+ await flushPromises ( ) ;
87+ const btn = document . querySelector ( 'button' ) ;
88+ const input = document . querySelector ( 'input' ) ;
89+ const valueSpan = document . querySelector ( 'span' ) ;
90+ btn ?. click ( ) ;
91+ await flushPromises ( ) ;
92+ expect ( valueSpan ?. textContent ) . toBe ( '5' ) ;
93+ expect ( input ?. value ) . toBe ( '5' ) ;
94+ } ) ;
95+
3696 test ( 'returns empty object and warns if form is not found' , async ( ) => {
3797 const spy = jest . spyOn ( console , 'warn' ) . mockImplementation ( ) ;
3898
3999 mountWithHoc ( {
40100 setup ( ) {
41- const values = useFormValues ( ) ;
101+ const { values } = useFormValues ( ) ;
42102
43103 return {
44104 values,
0 commit comments