1
- import { defineRegleConfig , extendRegleConfig , useRegle , type Maybe , type RegleComputedRules } from '@regle/core' ;
1
+ import { defineRegleConfig , extendRegleConfig , type Maybe } from '@regle/core' ;
2
+ import { and , applyIf , minValue , not , or , required , sameAs , withMessage } from '@regle/rules' ;
2
3
import { ref } from 'vue' ;
3
4
import { ruleMockIsEven , ruleMockMetadata } from '../../../fixtures' ;
4
- import { and , applyIf , minValue , not , or , required , sameAs , withMessage } from '@regle/rules' ;
5
5
import { createRegleComponent } from '../../../utils/test.utils' ;
6
6
7
7
const { useRegle : useCustomRegle } = defineRegleConfig ( {
@@ -12,6 +12,11 @@ const { useRegle: useCustomRegle } = defineRegleConfig({
12
12
} ) ,
13
13
rule : withMessage ( ruleMockIsEven , 'Patched rule' ) ,
14
14
} ) ,
15
+ shortcuts : {
16
+ fields : {
17
+ $isRequired : ( field ) => field . $rules . required ?. $active ?? false ,
18
+ } ,
19
+ } ,
15
20
} ) ;
16
21
const form = ref ( {
17
22
withApply : 1 ,
@@ -115,7 +120,7 @@ describe('extendRegleConfig', () => {
115
120
withAnd : { rule : and ( ruleMockIsEven , minValue ( 1 ) ) } ,
116
121
withOr : { rule : or ( ruleMockIsEven , minValue ( 5 ) ) } ,
117
122
withNot : { rule : not ( ruleMockIsEven ) } ,
118
- level0 : { rule : ruleMockIsEven } ,
123
+ level0 : { required , rule : ruleMockIsEven } ,
119
124
level1 : {
120
125
child : { rule : ruleMockIsEven } ,
121
126
level2 : {
@@ -137,7 +142,9 @@ describe('extendRegleConfig', () => {
137
142
138
143
await vm . $nextTick ( ) ;
139
144
145
+ expect ( vm . r$ . $fields . password . $isRequired ) . toBe ( false ) ;
140
146
expect ( vm . r$ . level0 . $errors ) . toStrictEqual ( [ 'Patched rule' ] ) ;
147
+ expect ( vm . r$ . level0 . $isRequired ) . toBe ( true ) ;
141
148
expect ( vm . r$ . level1 . child . $errors ) . toStrictEqual ( [ 'Patched rule' ] ) ;
142
149
expect ( vm . r$ . level1 . level2 . child . $errors ) . toStrictEqual ( [ 'Patched min:3' , 'Re-patched rule' ] ) ;
143
150
0 commit comments