Skip to content

Commit 0d972d4

Browse files
committed
chore:test
1 parent c2a3a27 commit 0d972d4

File tree

2 files changed

+134
-0
lines changed

2 files changed

+134
-0
lines changed

packages/form-core/tests/FieldApi.spec.ts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3529,4 +3529,81 @@ describe('edge cases and error handling', () => {
35293529
field.handleChange(undefined)
35303530
expect(field.state.value).toBeUndefined()
35313531
})
3532+
3533+
it('should run listener onReset when field.reset() is called', () => {
3534+
const form = new FormApi({
3535+
defaultValues: {
3536+
name: 'test',
3537+
},
3538+
})
3539+
3540+
let triggered: string | undefined
3541+
const field = new FieldApi({
3542+
form,
3543+
name: 'name',
3544+
listeners: {
3545+
onReset: ({ value }) => {
3546+
triggered = value
3547+
},
3548+
},
3549+
})
3550+
3551+
form.mount()
3552+
field.mount()
3553+
field.setValue('changed')
3554+
field.reset()
3555+
3556+
expect(triggered).toStrictEqual('test')
3557+
})
3558+
3559+
it('should not run onReset listener when form.reset() is called directly', () => {
3560+
const form = new FormApi({
3561+
defaultValues: {
3562+
name: 'test',
3563+
},
3564+
})
3565+
3566+
const onReset = vi.fn()
3567+
const field = new FieldApi({
3568+
form,
3569+
name: 'name',
3570+
listeners: {
3571+
onReset,
3572+
},
3573+
})
3574+
3575+
form.mount()
3576+
field.mount()
3577+
form.reset()
3578+
3579+
expect(onReset).not.toHaveBeenCalled()
3580+
})
3581+
3582+
it('should provide value and fieldApi in the onReset listener', () => {
3583+
const form = new FormApi({
3584+
defaultValues: {
3585+
name: 'test',
3586+
},
3587+
})
3588+
3589+
let capturedFieldApi: any
3590+
let capturedValue: string | undefined
3591+
const field = new FieldApi({
3592+
form,
3593+
name: 'name',
3594+
listeners: {
3595+
onReset: ({ value, fieldApi }) => {
3596+
capturedValue = value
3597+
capturedFieldApi = fieldApi
3598+
},
3599+
},
3600+
})
3601+
3602+
form.mount()
3603+
field.mount()
3604+
field.reset()
3605+
3606+
expect(capturedValue).toStrictEqual('test')
3607+
expect(capturedFieldApi).toBe(field)
3608+
})
35323609
})

packages/form-core/tests/FormApi.spec.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4183,4 +4183,61 @@ describe('form transform', () => {
41834183

41844184
expect(field.state.meta.errorMap.onChange).toBe('Error')
41854185
})
4186+
4187+
it('should run the form listener onReset', () => {
4188+
let triggered!: string
4189+
const form = new FormApi({
4190+
defaultValues: {
4191+
name: 'test',
4192+
},
4193+
listeners: {
4194+
onReset: ({ formApi }) => {
4195+
triggered = formApi.state.values.name
4196+
},
4197+
},
4198+
})
4199+
4200+
form.mount()
4201+
form.reset()
4202+
4203+
expect(triggered).toStrictEqual('test')
4204+
})
4205+
4206+
it('should run the form listener onReset with new values', () => {
4207+
let triggered!: string
4208+
const form = new FormApi({
4209+
defaultValues: {
4210+
name: 'test',
4211+
},
4212+
listeners: {
4213+
onReset: ({ formApi }) => {
4214+
triggered = formApi.state.values.name
4215+
},
4216+
},
4217+
})
4218+
4219+
form.mount()
4220+
form.reset({ name: 'reset-value' })
4221+
4222+
expect(triggered).toStrictEqual('reset-value')
4223+
})
4224+
4225+
it('should provide formApi in the onReset listener', () => {
4226+
let capturedFormApi: any
4227+
const form = new FormApi({
4228+
defaultValues: {
4229+
name: 'test',
4230+
},
4231+
listeners: {
4232+
onReset: ({ formApi }) => {
4233+
capturedFormApi = formApi
4234+
},
4235+
},
4236+
})
4237+
4238+
form.mount()
4239+
form.reset()
4240+
4241+
expect(capturedFormApi).toBe(form)
4242+
})
41864243
})

0 commit comments

Comments
 (0)