@@ -3188,6 +3188,104 @@ describe('Unit | Utility | changeset', () => {
3188
3188
expect ( dummyChangeset . isValid ) . toEqual ( true ) ;
3189
3189
} ) ;
3190
3190
3191
+ /**
3192
+ * #removeError
3193
+ */
3194
+
3195
+ it ( '#removeError removes an error from the changeset' , ( ) => {
3196
+ let dummyChangeset = Changeset ( dummyModel ) ;
3197
+ dummyChangeset . addError ( 'email' , {
3198
+
3199
+ validation : 'Email already taken'
3200
+ } ) ;
3201
+
3202
+ expect ( dummyChangeset . isInvalid ) . toEqual ( true ) ;
3203
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( 'Email already taken' ) ;
3204
+
3205
+ dummyChangeset . removeError ( 'email' ) ;
3206
+ expect ( dummyChangeset . isValid ) . toEqual ( true ) ;
3207
+
3208
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( undefined ) ;
3209
+ } ) ;
3210
+
3211
+ it ( '#removeError using an invalid key does not throw an error' , ( ) => {
3212
+ let dummyChangeset = Changeset ( dummyModel ) ;
3213
+ dummyChangeset . addError ( 'email' , {
3214
+
3215
+ validation : 'Email already taken'
3216
+ } ) ;
3217
+
3218
+ expect ( dummyChangeset . isInvalid ) . toEqual ( true ) ;
3219
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( 'Email already taken' ) ;
3220
+
3221
+ dummyChangeset . removeError ( 'email' ) ;
3222
+ dummyChangeset . removeError ( 'foo' ) ;
3223
+ expect ( dummyChangeset . isValid ) . toEqual ( true ) ;
3224
+
3225
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( undefined ) ;
3226
+ } ) ;
3227
+
3228
+ it ( '#removeError removing one error leaves the other' , ( ) => {
3229
+ let dummyChangeset = Changeset ( dummyModel ) ;
3230
+ dummyChangeset . addError ( 'email' , {
3231
+
3232
+ validation : 'Email already taken'
3233
+ } ) ;
3234
+ dummyChangeset . addError ( 'age' , {
3235
+ value : '0' ,
3236
+ validation : 'Age is too low'
3237
+ } ) ;
3238
+
3239
+ expect ( dummyChangeset . isInvalid ) . toEqual ( true ) ;
3240
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( 'Email already taken' ) ;
3241
+ expect ( get ( dummyChangeset , 'error.age.validation' ) ) . toBe ( 'Age is too low' ) ;
3242
+
3243
+ dummyChangeset . removeError ( 'email' ) ;
3244
+ expect ( dummyChangeset . isValid ) . toEqual ( false ) ;
3245
+
3246
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( undefined ) ;
3247
+ expect ( get ( dummyChangeset , 'error.age.validation' ) ) . toBe ( 'Age is too low' ) ;
3248
+ } ) ;
3249
+
3250
+ /**
3251
+ * #removeErrors
3252
+ */
3253
+
3254
+ it ( '#removeErrors removes all errors' , ( ) => {
3255
+ let dummyChangeset = Changeset ( dummyModel ) ;
3256
+ dummyChangeset . addError ( 'email' , {
3257
+
3258
+ validation : 'Email already taken'
3259
+ } ) ;
3260
+
3261
+ dummyChangeset . addError ( 'age' , {
3262
+ value : '0' ,
3263
+ validation : 'Age is too low'
3264
+ } ) ;
3265
+ dummyChangeset . pushErrors ( 'email.localPart' , 'Cannot contain +' ) ;
3266
+
3267
+ expect ( dummyChangeset . isInvalid ) . toEqual ( true ) ;
3268
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( 'Email already taken' ) ;
3269
+ expect ( get ( dummyChangeset , 'error.age.validation' ) ) . toBe ( 'Age is too low' ) ;
3270
+ expect ( get ( dummyChangeset , 'error.email.localPart.validation' ) ) . toEqual ( [ 'Cannot contain +' ] ) ;
3271
+
3272
+ dummyChangeset . removeErrors ( ) ;
3273
+ expect ( dummyChangeset . isValid ) . toEqual ( true ) ;
3274
+
3275
+ expect ( get ( dummyChangeset , 'error.email.validation' ) ) . toBe ( undefined ) ;
3276
+ expect ( get ( dummyChangeset , 'error.age.validation' ) ) . toBe ( undefined ) ;
3277
+ expect ( get ( dummyChangeset , 'error.email.localPart.validation' ) ) . toBe ( undefined ) ;
3278
+ expect ( get ( dummyChangeset , 'errors' ) ) . toStrictEqual ( [ ] ) ;
3279
+ } ) ;
3280
+
3281
+ it ( '#removeErrors succeeds even when there are no errors' , ( ) => {
3282
+ let dummyChangeset = Changeset ( dummyModel ) ;
3283
+ expect ( dummyChangeset . isInvalid ) . toEqual ( false ) ;
3284
+ dummyChangeset . removeErrors ( ) ;
3285
+ expect ( dummyChangeset . isValid ) . toEqual ( true ) ;
3286
+ expect ( get ( dummyChangeset , 'errors' ) ) . toStrictEqual ( [ ] ) ;
3287
+ } ) ;
3288
+
3191
3289
/**
3192
3290
* #pushErrors
3193
3291
*/
0 commit comments