File tree Expand file tree Collapse file tree 2 files changed +76
-4
lines changed Expand file tree Collapse file tree 2 files changed +76
-4
lines changed Original file line number Diff line number Diff line change @@ -893,4 +893,76 @@ describe("VueFormGenerator.vue", () => {
893893 } ) ;
894894 } ) ;
895895
896+
897+ describe ( "check async validator" , ( ) => {
898+ let schema = {
899+ fields : [
900+ {
901+ type : "input" ,
902+ inputType : "text" ,
903+ label : "Name" ,
904+ model : "name" ,
905+ validator ( value ) {
906+ return new Promise ( ( resolve , reject ) => {
907+ setTimeout ( ( ) => {
908+ if ( value . length >= 3 )
909+ resolve ( ) ;
910+ else
911+ resolve ( [ "Invalid name" ] ) ;
912+ } , 50 ) ;
913+ } ) ;
914+ }
915+ }
916+ ]
917+ } ;
918+
919+ let model = { name : "Bob" } ;
920+ let form ;
921+ let field ;
922+ let onValidated = sinon . spy ( ) ;
923+
924+ before ( ( done ) => {
925+ let elm = document . createElement ( "div" ) ;
926+ vm = new Vue ( {
927+ // eslint-disable-next-line quotes
928+ template : `<vue-form-generator :schema="schema" :model="model" :options="options" :multiple="false" ref="form" @validated="onValidated"></vue-form-generator>` ,
929+ data : {
930+ schema,
931+ model,
932+ options : { }
933+ } ,
934+ methods : {
935+ onValidated
936+ }
937+ } ) . $mount ( elm ) ;
938+
939+ el = vm . $el ;
940+ vm . $nextTick ( ( ) => {
941+ form = vm . $refs . form ;
942+ field = form . $children [ 0 ] ;
943+ done ( ) ;
944+ } ) ;
945+ } ) ;
946+
947+ it ( "should no errors after mounted()" , ( done ) => {
948+ vm . $nextTick ( ( ) => {
949+ expect ( form . errors ) . to . be . length ( 0 ) ;
950+ done ( ) ;
951+ } ) ;
952+ } ) ;
953+
954+ it ( "should be validation error if model value is not valid" , cb => {
955+ onValidated . reset ( ) ;
956+ vm . model . name = "A" ;
957+ field . validate ( ) ;
958+
959+ setTimeout ( ( ) => {
960+ expect ( form . errors ) . to . be . length ( 1 ) ;
961+ expect ( onValidated . calledWith ( false , [ { field : schema . fields [ 0 ] , error : "Invalid name" } ] ) ) . to . be . true ;
962+
963+ cb ( ) ;
964+ } , 100 ) ;
965+ } ) ;
966+ } ) ;
967+
896968} ) ;
Original file line number Diff line number Diff line change @@ -6,14 +6,14 @@ module.exports = {
66 devtool : "eval-source-map" ,
77
88 module : {
9- preLoaders : [
9+ /* preLoaders: [
1010 {
1111 test: /\.js$/,
1212 loader: "isparta",
1313 include: sourceDir,
1414 exclude: /node_modules/
1515 }
16- ] ,
16+ ],*/
1717
1818 loaders : [
1919 {
@@ -70,9 +70,9 @@ module.exports = {
7070 } ,
7171
7272 // Comment out this, if you would like to debug under `npm run ci`
73- loaders : {
73+ /* loaders: {
7474 js: "isparta"
75- }
75+ }*/
7676 }
7777
7878} ;
You can’t perform that action at this time.
0 commit comments