From 9cef6ebd82b9b56fc82dbcc68af5f5a6b50a5cb0 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Tue, 1 Nov 2022 00:28:33 +0200 Subject: [PATCH] removed DrySubmit form errors wrapping and added more api tests --- apis/record_crud.go | 4 ++-- apis/record_crud_test.go | 36 ++++++++++++++++++++++++++++++------ tests/data/data.db | Bin 237568 -> 237568 bytes tests/data/logs.db | Bin 1028096 -> 1028096 bytes 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/apis/record_crud.go b/apis/record_crud.go index ea8790f7..f2977e77 100644 --- a/apis/record_crud.go +++ b/apis/record_crud.go @@ -227,14 +227,14 @@ func (api *recordApi) create(c echo.Context) error { testErr := testForm.DrySubmit(func(txDao *daos.Dao) error { foundRecord, err := txDao.FindRecordById(collection.Id, testRecord.Id, createRuleFunc) if err != nil { - return err + return fmt.Errorf("DrySubmit create rule failure: %v", err) } hasFullManageAccess = hasAuthManageAccess(txDao, foundRecord, requestData) return nil }) if testErr != nil { - return NewBadRequestError("Failed to create record.", fmt.Errorf("DrySubmit error: %v", testErr)) + return NewBadRequestError("Failed to create record.", testErr) } } diff --git a/apis/record_crud_test.go b/apis/record_crud_test.go index 4e47b7a8..9b21baa6 100644 --- a/apis/record_crud_test.go +++ b/apis/record_crud_test.go @@ -818,6 +818,14 @@ func TestRecordCrudCreate(t *testing.T) { ExpectedStatus: 403, ExpectedContent: []string{`"data":{}`}, }, + { + Name: "submit nil body", + Method: http.MethodPost, + Url: "/api/collections/demo2/records", + Body: nil, + ExpectedStatus: 400, + ExpectedContent: []string{`"data":{}`}, + }, { Name: "submit invalid format", Method: http.MethodPost, @@ -827,12 +835,17 @@ func TestRecordCrudCreate(t *testing.T) { ExpectedContent: []string{`"data":{}`}, }, { - Name: "submit nil body", - Method: http.MethodPost, - Url: "/api/collections/demo2/records", - Body: nil, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, + Name: "submit empty json body", + Method: http.MethodPost, + Url: "/api/collections/nologin/records", + Body: strings.NewReader(`{}`), + ExpectedStatus: 400, + ExpectedContent: []string{ + `"data":{`, + `"email":{"code":"validation_required"`, + `"password":{"code":"validation_required"`, + `"passwordConfirm":{"code":"validation_required"`, + }, }, { Name: "guest submit in public collection", @@ -1316,6 +1329,17 @@ func TestRecordCrudUpdate(t *testing.T) { "OnRecordBeforeUpdateRequest": 1, }, }, + { + Name: "trigger field validation", + Method: http.MethodPatch, + Url: "/api/collections/demo2/records/0yxhwia2amd8gec", + Body: strings.NewReader(`{"title":"a"}`), + ExpectedStatus: 400, + ExpectedContent: []string{ + `data":{`, + `"title":{"code":"validation_min_text_constraint"`, + }, + }, { Name: "guest submit in public collection", Method: http.MethodPatch, diff --git a/tests/data/data.db b/tests/data/data.db index 87d713c8285113fe5c3e7cab3eeb07d54d89fc7a..012e067d387e4ac0a96af43af3484359ace6ffec 100644 GIT binary patch delta 42 wcmZoTz}EmoEsR^38qP8rO>aEQw36T0P{GK+%GAQj&_vI|#ALhWIi}+m0Y=dd$p8QV delta 42 wcmZoTz}EmoEsR^38qP8rPH#NRw36S*K*7+&%D}+Nz+BJLz;e6gIi}+m0Y)SazyJUM diff --git a/tests/data/logs.db b/tests/data/logs.db index 62f9fe56194a0b764628f8180d30c598621a4739..ed29281cdfc167ca8701412cd96fe881add6df9b 100644 GIT binary patch delta 6697 zcmeHMeQYB~6<^zN9DD7ZgyedO4isN#X-j&}uI>GBAg4oBdjeE?S1MgZLCX5uK7W7P zZRK-LX+AC=PMl;C(Ms*DeN(v+}D%}Vk|D_Pi04By+UJv=y8Iny&XHpuglT+Z!e zC|4$)PLuFXTK~1j9F)~gj?(NX&DdxM`6WAPw;!X(V``kTvo;d_QIjqRz;NYQ6S2qd zEV`0>v=C2_&MZtOI*!8XvzjZl?iUBYC=xljQIfW~XihbOj5kj}s3wRNeI=??WCBS( z=4V~70(Cc=$;Kf)(MBc6C9;`3xe@mP8!oA#yBBPpLJ zp7N#>@pML04P<@k4B~{Bb-IrlGf1%oGto%x1*accFB!Va2|k_9qw%9w4W=WSv!Al=nI4SC{Gn8|WrS_$fgxWi6;D0lOQ-pOZ)kMrVLlY`d99ha)syn^8J|^L zjBV&?<&i@^CRv+{a(trI5u!nM1iApcwPWPO(0L2&0*&aXq>)FcVu2%RXDSoRIx{RWhBf|NU-Xs;sv&meT`v2Zd2Wz8Q=J8fXhz7wCXdiLd zZ9?J@aS{WsfpPFI@hk8P;x>qa0nh<##52T6FiCtFd;>g4e3iICBmpE|sgWm&^(!Ze zodXzVxS1tg*#K7xo=tG5Q8;>g7_QdGPMQqmKHac35TH{*e<19m@{t6W#Ww{oQp%KK zE{`J^4|zQW2Hz0CG#z3ho?O<=QmmaU;ZOj*-aMV5d>%*1?+yAL___cllQD0EjoFhC zmz@s=@HGLvCCQj8fv@(J5t{P*qeW-F$a(^yAXma`!cc|}dz|?a!-PXl zCQ9Qg0;oF6_>=&;1BqC^;BxSeQqbk~;mZQ3dZXc00aU(?czmf(S02`?ULp9RFjRH* z;|l_)xU!28d|m)mmo0ul097|7J|}>xYYv}9U`(qzjrfc(RCR#xX#rHlKK{&ZSb%X1 zY=gJKo8S%beeiAY3ivvB9#p{$I0p(K0fJxx1g2>XHT6I6Ki2^aGhW@j;DtvwUa9}Y_o%UK(jC_F-e@R>Z_3>bxeMj) zy3iE~*5vN0JfJ3bSL6XxGP*2xt75k-%)BJSi$YhNV?jpe z5kuU-z!119TqI_R1aXEqPTWJ7 zE$`LHbMMzaS$U}geZt?W-C69@BZr%B){>Kb^{&ZxarhFaF-z}Kk{l&Te6wHY&?-L_ zM8ifq18iqlZ)aFj8p=XyAWpKXw8(~9JHtvl!&E!Nvf5DIo4u;G>=~BY85Y|a7TOu+ zTMcFL*)OzOM8jM=!)!alOgqE$eg+`yd(&x#&vt7E4i2z<34MqIeCopCU*`UhlE?>xWQzb3j$YQzg!g>f>JRlpCd-HdjljgKpsR z#b|>4#PB1B<)WA>|AsyHcRbfr*%UcA#-(~N8JD?T@UUv(syx22a49em32C?4X-6x$ zgg2Alr6O0=10Y}3G}mMWa?<8%smaQ?Ozwn-5P5S=R#jJkuYLtT0;^_Ib4gjKS#vgu zQkR%yym^K`)eNd4g)l?BMsm5mO_j*)YTq<)ncM|?RlZTyI^gmTbiMGzS;O0Vj^8CA z8FkrBT)BWZlYc}-uBw?dc2%lZ3nYw0rw`JL<2JJ&T^JJ+>6R?VNcy0*2~bowXJk$V!p_A!&SW_xE7PK;};@Xg!WuIbCS zw5aJ&>p)Gvb@^83_%$OMts!z4kwXVELOlGRDfYq_bh^9$2aCM@s`zSDf2Vg|HlWsp Vnh`YC8mi*~gR7n8JMl91Yvc1qJ3#=2RuEZMr> ze9^_U_)DfH>i7^BT9}3;OqxKd5Vv)wHA#n((3zSxE$O5e+JVwZW*X=enrS|yXSHHi z+UP@mK*w|DdEQ4y&w2OVbB^O30_}DOlfE(EXa@OTe?rX?ec#2j_C>nt zD?%LkZf(eWBo`VNV{9atilq{C0+trrFG)G?Ys{GwT6-g1^M@LJkRsaf7mi{dA} z>$>XA%};Ae9geZCfQt*WVubdmMYu0*y3kY-ma#keR^GC%dW-W@n!NMrNLJvvV8|c! zrQNW1Q72ZG&sPWURvTH>r|9HpD4S-TT#yZo$KkDn;rac_-jlx1wAj;iUGXiG^LdNy zk#6^yA$H2p$NmI6R_UHFjhPLP7@yle#9-3~IIXdS^SL{ush?&Wa7>Ixa;P>DM z;31#~Wnc&IgSF&Fa2~))fB$G@pnpU4#r|9y-1t1+t;aC(Qgz236R8IeVK?AoFXNl^ zK#z69l)_GS>bl{pFXOAEDI@Sr^g#i!T^yZ_xW|K@KvM9Hrv&ONT{;^vN{jh;a+Hg( z{&-##s6&#dxpb%*Nz~jFR9O-=$DArjqUL~7#jXNUHAjmoNK-Xuf|{1Z=FRM zA9B>BBx<%0H6e+b_fO@!bWR(gd2>|Gq>o}|eGmgT!9T!N@D5l37r`?45jYE804MZ8 z@L{!o@C;EI7~D|(V1EwpAaw+RAEB}sMmeg2XBQ%Je&k zo|5STq6;#82GMWH^r*CMjZ%ly6lP>vkkTouGfFBgsXb?+RXU;0&8swL zBGzMO!h#VNa0~nm{1*HIoCD7Rc={fKs`f`u;gx~thRXHWeVrCv522iAsZ{1|)!z8C z9jH|J1Ih;`R2ckzHAKb1*Q+5a5N=V!W2hV-tD#i0n`$W4?XPMm)$TWHcochttjBRC72fhj*JBYNGk$d~=vH;Wsfeeg(s?z(EJT zrqW-0uQFKNP}x#?3H}O#wdm68xK@dkyQ;?W`xJ@@GknEWyA1JvS8n~e%Yd3S{M{P+ zFJiC5-oqB@s>Dy%v=0%RtFiwemZ`Bjh#jo4+lYNpV(=*ux4=I@K;eg^b=TlCGL&T~ z$xxJ`Aj7l_Q!-4-Fd;*}2I%xD`w1SqhgkFfEhKfk)Th}(+du6Vl3Q~xW_io}?T&-g z=JtOXe+rE&<<#)*4&eNi)#wXFCGa7c zmzTe}jK8)_kXHQWqVX!Rq%%-xN(Vf@-ej%VuRjBa4&YX}@&REyeEJ%Jh7Juq8ivKw z*V+y&bsA4%Z8(dOkv2hpNhcCpakje3+JpC&(z6fN8>wCLZv=NJF9tG>;ZQUlb}?ay zKcaWxyI?G&OMJ=I$FY4hZx&iOi;Os6Sx0!d>$qKB_Q+aYU4oh2 ziP~>ztK9vSmf?q)v6MHPNre4ArxW5oFuuRnD_InZ;r$6tDXTz1=kG8|PO>Hkd?sWCB zoL$gt2V|@0jkbLn+h{rv&7?*d#=-jnZa=(rN_XRN<;!gIi)qwV(}!n8WV)xJg4uX# zEaOW#{N79?2Jt5iov?qM-Uh7;?Z@ER0dmvcT5deeYs;wUsy#F7(&S7Bf+4R{2#sW- zVqz?!lwz;+$h2MHKk?obz0p?C*!tM8*DJ)wImZaYjKEUR(g~N3w*Rn}u~oKUT4juu eWcb5(&X8yr(P&4*ga(C12O4HHEbz`5VEP}qN^aZ$