From 5b41af6e6a23976434fd01cd04511f4ce6fddbe0 Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Thu, 8 Dec 2016 14:11:05 -0800 Subject: [PATCH] Improve coverage with more schema tests --- .../05fcd912e8786fff4dca854a7fa44c81.headers | 8 +- .../fixtures/157ce6484de07a7e2ee93b54e8244e27 | Bin 0 -> 319 bytes .../157ce6484de07a7e2ee93b54e8244e27.headers | 29 ++++++ .../fixtures/456168a862ec0ca28127f067e3f166e7 | Bin 285 -> 285 bytes .../456168a862ec0ca28127f067e3f166e7.headers | 10 +- .../fixtures/6044ddc15443664659ef91c3c73c0776 | Bin 0 -> 1413 bytes .../6044ddc15443664659ef91c3c73c0776.headers | 29 ++++++ .../fixtures/69d9c8738fe3ea4883276fd8fc9979ce | Bin 0 -> 802 bytes .../69d9c8738fe3ea4883276fd8fc9979ce.headers | 29 ++++++ .../fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e | Bin 0 -> 404 bytes .../9247bb00fc5e2e0dcf1fcd269df8b94e.headers | 29 ++++++ .../fixtures/97ec62634d0a8953ab3ba2ffce984a83 | Bin 0 -> 1659 bytes .../97ec62634d0a8953ab3ba2ffce984a83.headers | 29 ++++++ .../fixtures/a81703ff2de3c55fdf82ff4d0a1f5052 | Bin 518 -> 516 bytes .../a81703ff2de3c55fdf82ff4d0a1f5052.headers | 10 +- .../fixtures/b1df6f5637b0de25ce9f54874c8ecffc | Bin 0 -> 618 bytes .../b1df6f5637b0de25ce9f54874c8ecffc.headers | 29 ++++++ .../fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9 | Bin 0 -> 1874 bytes .../c907a9892b9dacd1c8f6a85cf9b95fb9.headers | 29 ++++++ .../fixtures/d1a0073e6dcac919d8fdf8be12bfcbec | Bin 0 -> 1290 bytes .../d1a0073e6dcac919d8fdf8be12bfcbec.headers | 29 ++++++ .../fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff | Bin 0 -> 1225 bytes .../f2a7af3e3a39e31ee0d9d74b5820ebff.headers | 29 ++++++ test/schema.js | 91 ++++++++++++++++-- 24 files changed, 358 insertions(+), 22 deletions(-) create mode 100644 test/fixtures/157ce6484de07a7e2ee93b54e8244e27 create mode 100644 test/fixtures/157ce6484de07a7e2ee93b54e8244e27.headers create mode 100644 test/fixtures/6044ddc15443664659ef91c3c73c0776 create mode 100644 test/fixtures/6044ddc15443664659ef91c3c73c0776.headers create mode 100644 test/fixtures/69d9c8738fe3ea4883276fd8fc9979ce create mode 100644 test/fixtures/69d9c8738fe3ea4883276fd8fc9979ce.headers create mode 100644 test/fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e create mode 100644 test/fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e.headers create mode 100644 test/fixtures/97ec62634d0a8953ab3ba2ffce984a83 create mode 100644 test/fixtures/97ec62634d0a8953ab3ba2ffce984a83.headers create mode 100644 test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc create mode 100644 test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc.headers create mode 100644 test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9 create mode 100644 test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9.headers create mode 100644 test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec create mode 100644 test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec.headers create mode 100644 test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff create mode 100644 test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff.headers diff --git a/test/fixtures/05fcd912e8786fff4dca854a7fa44c81.headers b/test/fixtures/05fcd912e8786fff4dca854a7fa44c81.headers index aaed104..6874b25 100644 --- a/test/fixtures/05fcd912e8786fff4dca854a7fa44c81.headers +++ b/test/fixtures/05fcd912e8786fff4dca854a7fa44c81.headers @@ -1,22 +1,22 @@ { "statusCode": 200, "headers": { - "date": "Wed, 07 Dec 2016 23:09:35 GMT", + "date": "Thu, 08 Dec 2016 22:10:36 GMT", "content-type": "application/json; charset=UTF-8", "transfer-encoding": "chunked", "connection": "keep-alive", "keep-alive": "timeout=15", "vary": "Accept-Encoding", "x-ratelimit-limit": "700", - "x-ratelimit-remaining": "361", - "x-ratelimit-reset": "1481152175", + "x-ratelimit-remaining": "547", + "x-ratelimit-reset": "1481235037", "last-modified": "Wed, 09 Nov 2016 23:43:24 GMT", "server": "Jetty(9.3.10.v20160621)", "access-control-allow-origin": "*", "content-encoding": "gzip" }, "url": "http://musicbrainz.org:80/ws/2/recording?query=Burn%20the%20Witch&fmt=json", - "time": 744, + "time": 604, "request": { "method": "GET", "headers": { diff --git a/test/fixtures/157ce6484de07a7e2ee93b54e8244e27 b/test/fixtures/157ce6484de07a7e2ee93b54e8244e27 new file mode 100644 index 0000000000000000000000000000000000000000..2ae7eede196591eb858694faa6a820af911c41c5 GIT binary patch literal 319 zcmV-F0l@wriwFP!0000019ee7Z^IxE{VNf3s19sw$6LE}=+LTamsTAx91#)*3p+y; z<-hmHM^&Y&Snha_yZ0UkW-{spE$f*C(QqL-bZ=7hmFxlTK&cP5W+v_8!um?ds#&w- z+>F%1ngu;zm|6dMV7|;Su60Hk#}S0!HM*J)iYjA4be*c&jR2ar>?b7lbM{*wby&UR zWOruqDH1rFlnW}LP@^78b3aW1SFcEzoeL@Dh5v({L~)ZWfdbn4qCfA6`}jZvO`chQ zk=*H4)tamW$d*@HZurpHmdl|A)KGVV()rQx9zCVCdh&5=(|9A~20W4!?~u=vj%D3| znVP1U-*K_phLeRt88Yn_>*iX?dE<*qDSwOlj zw1)r*UfJ3c0A6 z+DZ=ZJE@c=I&rH~nW51&He6d2I^%X7CnO`eF6)6YJ7lkMQC+kfSC!nn!NG5WGc_}w jeb40QLH_}H?0ZN&w3igze81mugZ+p<38|dq9|8aXz>tUY literal 285 zcmV+&0pk82iwFP!000001C>xgZo?oD{7SWFuVe$Zi9e7_Z#`C31ZIhl9BctTL{a`; z?8Is$=h7RqJHyQE4f=8RDO{oR^Dq>k0x9Tj;0$z7mCE#uuCd|TqR@iyaNvYwB-dr# zGiG}zAdVrSR~O2XFH$KDl&8CaaZz2gJI^Y)(dQN13mBXwjFa+b$H2x>x$?5&eN*BYn<+B5b0Kv3_~l>b|e=pCjzs?M{$`yU9i9zJK2E zpRA7*-1w*6!l&y*YhNJ2D_h$Jb!`}O!3|2y8*Euqw$@tR3cX~HezRI-y)=rEC{Y_G jQJ7pqR$ML6*43ewTFIwRW*@^iPjLSQp(6_d9|8aXoQH|V diff --git a/test/fixtures/456168a862ec0ca28127f067e3f166e7.headers b/test/fixtures/456168a862ec0ca28127f067e3f166e7.headers index 9fdb41b..c25c596 100644 --- a/test/fixtures/456168a862ec0ca28127f067e3f166e7.headers +++ b/test/fixtures/456168a862ec0ca28127f067e3f166e7.headers @@ -1,22 +1,22 @@ { "statusCode": 200, "headers": { - "date": "Wed, 07 Dec 2016 23:09:34 GMT", + "date": "Thu, 08 Dec 2016 22:10:35 GMT", "content-type": "application/json; charset=utf-8", "transfer-encoding": "chunked", "connection": "keep-alive", "keep-alive": "timeout=15", "vary": "Accept-Encoding", "x-ratelimit-limit": "700", - "x-ratelimit-remaining": "596", - "x-ratelimit-reset": "1481152175", + "x-ratelimit-remaining": "250", + "x-ratelimit-reset": "1481235035", "server": "Plack::Handler::Starlet", - "etag": "W/\"70e9c6b355083588be1b5abb2e76e291\"", + "etag": "W/\"39c7b86496389329f958f3d9d8599d32\"", "access-control-allow-origin": "*", "content-encoding": "gzip" }, "url": "http://musicbrainz.org:80/ws/2/artist/c8da2e40-bd28-4d4e-813a-bd2f51958ba8?fmt=json", - "time": 361, + "time": 3316, "request": { "method": "GET", "headers": { diff --git a/test/fixtures/6044ddc15443664659ef91c3c73c0776 b/test/fixtures/6044ddc15443664659ef91c3c73c0776 new file mode 100644 index 0000000000000000000000000000000000000000..ed6e425e1bc05b7106354eb9449576c7248fa990 GIT binary patch literal 1413 zcmV;01$z1)iwFP!000001LapuZ`?Kz{VReFJ?#J#Nl|2Ob_+B>n>J{gQxO!yFI$LK zG9;~2!|;FaNUL4%u2<`|lN^c~1}sbDkbLjWo8f)hHEjju=(9-mGSOuCk1skIzV@P^w!&O=Tjcvg6 z&HZM`Pc&ql;>!+~w!B(lUp6&;8CLi7H|NZ{U?k+q3y|I**a9`6%uJCBBNPtvcMmZI zeORQluW7}4RaJ|$zq<)AhP5g%kw*!Ff&(4Ofhl|hErcn!V3zqvVK>_?y9Pw26lCBU zA4W`mz8p}P*8EtPeelUIw6t%Qrw*jC$R%b97~=&9*Bp=FS0D4=Urb>H661lstt7r~g5t`GzOI*>fi!T7uY z83b3nhc#Fe1DGcO;mCW=1k#1^o^?Z9_F8FhF)ssI4VPJ>eW80Tq|M=Rq!I%9SLG1gsw5vW$%Ilg{>%!iUogM9ObqepA zszTeeYhHFj!Yx*-A@Kdf_Au)>(~brm45)FVqh&6G9J2^g(38%k2c<-zxI^^nP?8s8 zgf5wwytu-$?)v27hC*M5(my8686%%c>tR>gMedl)5aAkMBhH|}S6g&uWMoqMW zl+FWM!6DjA#^5~3G0qs#)}Y6L$+SZHMEA3YUGwO@(ON|gnJ0sgycm?`EpRQOA~!;% z)CoO&m#m)!dP!xd9If^Ev5td(iSBxlTw-gn#jS;tJVMAU1Q8fW+C816lIp4$+-j4b2_20#%P$rOGc zca^6{q_UI2v-bClX^x1cL$fl^#nB8I5dMlK_l*72f;&pt@<{+nr6a zkPk*%WJD{^URpaR3f@=P^`%RGuN#toeY~J;5=};(4W6d0plz5;f^jhd%SdcI8lNe9 z!0?mskM_I_OB>pxiHTjWyXzC9o?quksc%=yEx|8U|A^&!`X)I}K|JV| z1Jkp$<1%1h1uA%dUT;gCB_gej4qP;YYg6uw?iIKbA@f`@Hb=@7m4YQxPVZYO(Zi(7wx^fI=0y3v=1+BKAxaB6J=9t?<{e9@0c1g9mY3~v` zNb+_?UgEHRBw6zW;&iyv|A$d!k+(lJQ|4+`gtBf;-ue)O=C-bq@zfecB+L&>plg;sSwf!Y@9u?8ov=`f@7wJujb@NRX_5U@*^GxC4({Wu- Tqu;OZ?hpS0RAhzZM->17>+!Ux literal 0 HcmV?d00001 diff --git a/test/fixtures/6044ddc15443664659ef91c3c73c0776.headers b/test/fixtures/6044ddc15443664659ef91c3c73c0776.headers new file mode 100644 index 0000000..f125c93 --- /dev/null +++ b/test/fixtures/6044ddc15443664659ef91c3c73c0776.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:44 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "553", + "x-ratelimit-reset": "1481235045", + "server": "Plack::Handler::Starlet", + "etag": "W/\"1bb5095802d059afef4624c8e955cac9\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist/300c4c73-33ac-4255-9d57-4e32627f5e13?inc=artist-rels&fmt=json", + "time": 2141, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/69d9c8738fe3ea4883276fd8fc9979ce b/test/fixtures/69d9c8738fe3ea4883276fd8fc9979ce new file mode 100644 index 0000000000000000000000000000000000000000..775e60178792299793a6f114a2117d4856e413a3 GIT binary patch literal 802 zcmV+-1Ks=|iwFP!000001Ep5WisU#D{FOrIO3=%;)W;s!Wnc#8uk!@Ksbkh;z^G`@F zrP10lDo)tCvFW>9a9|!^nvOkn`?lROH;$?C`w`)*YxhVMhvSwF{XPYRkg#q>8bSkT z-szdTNf>fJI*EPy&!w6QTpF8!iVv)FJEWt(zToB)j<|WoVcfjycfQX+sSVRU@*+e5 zMNvA?#(VH(VWEmfl-d;BSCZvHgWLJ$W$%`0EJI5pEEDd!Z#OiO5&Y4m7aVWkpLtG8 z>Qh5IaBW`B`0X|K+TqS)+VpYbU6=VRO_t+@-LwZJ3emL#&JV*xsqm;n$t_qHi4r;v zR&WnO#^@`7%1A-j4tGfEwBHTC4r5IFpGWamF5x`eGKou&ZFmPLNzIp|7 zqjd)ySEYI@YqC05!SkT>dz@!pXe?K@1}RG7RVW05T!EL)7iCd;qy4S#F0}rjnX8=h z;hUU)AZu3?zp>C;hWS}<-dX$J`^V4MJ$*@gDxwAz(1KFr2wT+=j8e9eihEv1b_Vwe z(?Ha>ci}LM+i9UEAOGtTx-8E3^8MWx>^j$+?CH2trXX6i(+aeR7N#_*wD4BjKzR}_ zGM*kjp8q-PHaTR5&i+EfH@mf32r=`@S zzw-hdB`d_LA_s)%(b>7nBEZ~g{*svGR%NYf#U1HOw?!fKF~KX4mb|5mMm@C%{k|L1 gx6Ajy-8N1^x5>%3BfB=;<|fVm2eY)}?=p$<`cRzO8jAwU4(_5Q^Y4t2FOictcr3X=($QVA(7#ajGIb^|5~g(k z`|0_(Bj~XB9RCO`MxSdRDXwY2;Foz`JFXm&#E;;w?#k=(k@Oo3mgdCkp7_RIve*G3 z{|ZqEIWAJ#7<}G~O#lpq=u2W|Nw{TQbERsz1y+4)u&UJw$(D>=-!~nzZnS0CTZI4B zTBjY&@VHe;y3(U9(JG^`YP(+g8!HDZjUH7~j9LlzBD!gk#J8>Q1}QnefB$>mfu9S_ yF0Xm{5YOAb?DD+k`swh(JRe@1=j~4Wj~1*=EEd&&=wZ4#b@#t#j{EhV0ssKBX3SXt literal 0 HcmV?d00001 diff --git a/test/fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e.headers b/test/fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e.headers new file mode 100644 index 0000000..2d4a9b8 --- /dev/null +++ b/test/fixtures/9247bb00fc5e2e0dcf1fcd269df8b94e.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:38 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "381", + "x-ratelimit-reset": "1481235039", + "server": "Plack::Handler::Starlet", + "etag": "W/\"39e8c37928b3a6031027cd8ab314a49d\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/release?label=cf7fc5cf-e011-4ef4-b511-cd0188537910&limit=1&fmt=json", + "time": 525, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/97ec62634d0a8953ab3ba2ffce984a83 b/test/fixtures/97ec62634d0a8953ab3ba2ffce984a83 new file mode 100644 index 0000000000000000000000000000000000000000..eadf9a292541ffd6433866abdad742a6fbe2eaef GIT binary patch literal 1659 zcmV->288(^iwFP!000001JzjDZrnx^{S|@_n-?|EH}*wu>j3s<*9IJHb{9cn1l8Tu zGUJ({Kyn-ig8qGr!?|#7(nuCISU(sVvb(zLoT^h*yf3?^?b!n6SYDSO;`h+@3%t83 zKEiTVUX^vC#{sH}CyopfM5dk5EI1dK<~Bm8&>G0J_68RT+rbRXkbcKzx#-(FdhqTI z{iL_QL5omcFP5{}RoUVU`np+k<@GQ3Wx$(yv3W(8sJp(rz8}x$7y+C&ta2HcP7zqB zRAMfH4YA6Vj};v-_2dmKQt?;XeO0EqgL$ZLmaEg~9X&f-^+0F#eOrfRkL)YVmPog{ zpFSOKS`Mi>dC%GyA(+WGjDc6}fjtFykuA zG)B(6m7Y0`m=oF@of$SjdxQO+jR9e@kYU#0Xpx@BW;TP+w4;C9ee1VtEFZ4!FL9B4 zJHx~pvY$R<@y~hlrCxkjd}w}einsNw$F@5I^pulR+pY>SxQR2Rg5pqlR@tPOHb^{+ z04&MGt14ufv>B*6K;e|T=fQae7M{=kH={qr@h!IP-6O%h@~-k+DwQ~^AV{XcSmv@; z42-r>3eH1{yF}QT{J(|wM8-|FoVNL#1UiGuH)Z&a-=}hCqf~|DTUB=13l##BE|MyT zXc#!6nL8(>6WSY@kEL!f@NgJr2QhdmQoj-6x+`ue-Cqgbl)Q5$OD0lArllR=O#>1t z8>c)Nvk&hYgpb(9yW&?8v9_Mgx?js;{HtEv^sB2qMZO?3hy1`nh9H8eC^9Z=tNq)uNMi5ZS%K@V!?wmJY<%otVqO= zGZ&?!3(G8Q<%0%!5Hphoa%J>n(CmVP+%*1GTa&kh%N!OP7o^h01fN*0EOm}(74zI= z7KNZL(gkIuI&fiaVbho#U4JYVMUz)8@(#7)FU8Nzvj6_~NTT;5rV6N| z;huRI`d$PIa3X~XnRBp$0!NBJy@Wm%@|QYr4v9+&#evZI9HTZWFdK6mj?~ohR7j~7 zER|jB(8B@aKQ1ZB@8)=(^PSEOF}7X*VhMi@icbm8r6G2j%5(HnmXfp%V#LcQ=cM)a zljBo>t}AYqHQkmB%@9)YwTVPy`DrQ%)G={;s(cUNzd`6{*ln920xJY!I%YrA0Me*{ z!ZMUmp-9qjey&a4Yp+JDV*tFU${wAtuMXdJ8|%4-miXOX!*8y@eJR&+L!AmV(L~b)8CQraiSs z9*toML29WL*W4TcKknl$2$2=DmGDd}OB0JlWCkJ)Z(TV2G%*vp+Glb&=F+=rk4 zL*$QUlP$vEKA2n%{44Z3AAn}|Y1ekd%kAf;Z*E$+9h2e=AA_Au%3z4ebCL%HbfgjF zK+u#yn608#I~gIvz|b>YzWig>Q)E1^bPdS8M9nuK)nAYheut}q^;8iV7ZRSdYb)wn z*yOZgGEx_+`7oqgp_u{~X;={klYX9x2Q7p31aROsbg1(KPf6* z9fm3Ph=j{Kz^#5g3~;VK>yn6c4O4>dCRl9JSoGh$8LImlqJJ&w9#ioTIy*J<1N@F& zp8dE*<5HzT7{)o(O9j%CrYEYLL31i=+6hcsRDavtZhF@H`YX1#O*4D!m?*W6iX(Fl z0@FceB2QN|IfJZ1vXBvXIyN=A1wu}NVDEqUclqgI%fiRa&|7zldbNg+|AZ8}l9l2E zbhDaLs=KA3=K6lpCDHguL%eYN6iw-*gX-I@UE!Qnk|yF$d(mW&tBR&j711-LL>y-5 z%$!o5W+NVW+I`v|wtKP>$3B{0^1<(r|hn{4b2z=c$Dl F004fhG)Djc literal 0 HcmV?d00001 diff --git a/test/fixtures/97ec62634d0a8953ab3ba2ffce984a83.headers b/test/fixtures/97ec62634d0a8953ab3ba2ffce984a83.headers new file mode 100644 index 0000000..6bf43a7 --- /dev/null +++ b/test/fixtures/97ec62634d0a8953ab3ba2ffce984a83.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:47 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "297", + "x-ratelimit-reset": "1481235047", + "server": "Plack::Handler::Starlet", + "etag": "W/\"40e494f99de2f93d29eb00587cf919e8\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist/ba550d0e-adac-4864-b88b-407cab5e76af?inc=artist-rels&fmt=json", + "time": 578, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052 b/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052 index 7db0efa96b76ccdb15ea2a4b14bd3f8cf2c9d59b..14e944a39d1ee64b1b858ae914cfd627ff06ca0f 100644 GIT binary patch literal 516 zcmV+f0{i_RiwFP!000001GSV*Z`&{ohX2Z-a|p=#vYgw19e3-n%g_TQQJsdw4s7R; z2L11&yJgL1+br9W6h-nSA89LkS`ZEd4}G^@L6`GDqnOLt(LwCiE&I)pe-QI;Tan6u z%TONHIF_yzb0KD8)t4pq8yGh$V$a7#STETu1GkvqbXlYJQb(sAU_^&=eJE{Tok6Dl$iLQ)<~G6cTTIGNd2jr9RN#~xgL znu#A>X;GhTU8ej?)b#D+5x4w7WhO7t=8+2)aQq zXe~5|4pN0OqvkH`)W>0!-zD~^3D4QGRZTFp14mAQRwhG`h)`usS|?rU99hQp>aMwE z2bJG-jUl;Om5r%H!kaEK-M?+-K?Kw^Y(~QZ-99 zmJv0iGhlEDIJZJ&sc|Nq?B)fXYesxDk^lROPe=U1$HfjVeOA+UZcuto$y@6Gjnc0e zkw5FpPv)%=-2Q-nG3y;Mqz&XG4HzFA79s;w0cDWVQ60=H%<73*r7m*F@8>7&C9mnf G1^@uC@$+T? literal 518 zcmV+h0{Q(PiwFP!000001GSY+kJB&^hW`rkxg$CLiqjhsM{bL_AP!@Dyco4fmAHp) z)&GtY2&iq^g^E3TocZwkympSPrw!pi@Z5L%9dt1cl-ZiE&Nl|O{&Hm4=QL#SJ%yB~ zNQ+xyYxZ&9)4*2jdzaeXx4xv6U|Ii6VCy4Gp+vk5C`fT|L0C{h5!g!NxQx1Lv~_4p z*3k7CE-GIvLmF`F((@j3>e{mLM40o2-sL`Z>~#9N@JUJA^=XU!0rFu-FpU(oXq>7I z7%~E+P!SwQgeppsGRR6sKaNDcYr~v6s!=-RR63R#pKwPP#Y^=4#_hLPsio_$?5Vvd z$Clm;aI!&As5LZ*2112AqAYsoQIVMXqWerFU>+L?UMb)bxMru-ae2h+0|&#URa$^0 z;vl23fH8Uyff}qR5O>Xzz`tp}IsS{HOK$iJ{4<;n>E-2c2g3!mr_?@gMw-*a=z^(5 zj9|R2K`E!f8g4+l+DK7p@2I|mr?4?l*$K~WgcS!~&mBqDLDWSfr3+d`G6Fgiptw_@ z(9{?e{@rV{7&rA>r27ZoeZ5!z7w_rXNay>DzJB~7-=iZ(Izl|^pJ)x0DH@1@D^S)q zMH23ya>yO$hH9s7y)F-5-B+*a+i-pL)xP3->y@6}`WZd8dHU@9FXg*^iLce^2V`|H Ic)tb!0H+ZH+5i9m diff --git a/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052.headers b/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052.headers index aa93b5f..b94e736 100644 --- a/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052.headers +++ b/test/fixtures/a81703ff2de3c55fdf82ff4d0a1f5052.headers @@ -1,22 +1,22 @@ { "statusCode": 200, "headers": { - "date": "Wed, 07 Dec 2016 23:09:35 GMT", + "date": "Thu, 08 Dec 2016 22:10:36 GMT", "content-type": "application/json; charset=utf-8", "transfer-encoding": "chunked", "connection": "keep-alive", "keep-alive": "timeout=15", "vary": "Accept-Encoding", "x-ratelimit-limit": "700", - "x-ratelimit-remaining": "154", - "x-ratelimit-reset": "1481152175", + "x-ratelimit-remaining": "396", + "x-ratelimit-reset": "1481235037", "server": "Plack::Handler::Starlet", - "etag": "W/\"141f49e0130d012e9f5ffc328bc55045\"", + "etag": "W/\"94bf3bba877af6290e53de6524fcbdf3\"", "access-control-allow-origin": "*", "content-encoding": "gzip" }, "url": "http://musicbrainz.org:80/ws/2/release-group?artist=c8da2e40-bd28-4d4e-813a-bd2f51958ba8&inc=artist-credits&fmt=json", - "time": 379, + "time": 490, "request": { "method": "GET", "headers": { diff --git a/test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc b/test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc new file mode 100644 index 0000000000000000000000000000000000000000..316ad52366c77c10b959581de3ce41815a3111a7 GIT binary patch literal 618 zcmV-w0+szAiwFP!000001C3KzYuqpp{ws^0cR-hAD~}eJY{o7;OZ*c97+k zuDXs>LRUVgHU`Q|%D+Xjd5-Db4S&9+I?2$E|J0{j?oYHq$YclYq{&^#@h!EUg* zX&&sx&3V-FXuJ@N}_if{FmFj(NGy}$|%;u7&Qt2LRzdYmO7HwG*;eU5J-drxI>?Fc*=A4Tj zd^8A3AR`gH0~B5&4?;5*Dm7b5PHrv;KkRz0{%qgv`ivo!>+QXb&Q8-}HK$^8H8Z4) z{zx#6`KQfc&vVZH1aqKH@f_3(T9nrpggxWdq4Js;Fg99HXc-t10bIoBI*zgz)hp_@ z!g39Wgi!K~=ktn7r$=WGeQ3SGjl;YcA8z6P?s8!6LmFzf&nLIF zZu{8v9cUv0DBeZrTj3#iZ#&V4wpZpqf_%fRW}g_<2EFZCWw{2%L zI$ZO4oQq$l7;(9HEHec|=c^iBro&HmT}RiC^HB0DZ4imyGbRXx>BSD!n|H~-y(>lU ziV~FXh7Fhk&h`pkQWg4iIektelWkNWJw0_Pxd+n)icw0_3CSD_@okJgW1fgm^>5f? zHSG9x+OSr&`ohA4+QnJ_S@)r{)IkQxEVVKLBnJBP(^b literal 0 HcmV?d00001 diff --git a/test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc.headers b/test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc.headers new file mode 100644 index 0000000..ed9064b --- /dev/null +++ b/test/fixtures/b1df6f5637b0de25ce9f54874c8ecffc.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:44 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "551", + "x-ratelimit-reset": "1481235045", + "server": "Plack::Handler::Starlet", + "etag": "W/\"ff712330ac15db00e8bfb935e809bf95\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist/49a51491-650e-44b3-8085-2f07ac2986dd?inc=artist-rels&fmt=json", + "time": 2134, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9 b/test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9 new file mode 100644 index 0000000000000000000000000000000000000000..6cc2f4f0967cd847fc5ef9e2aaceaefd9e28e369 GIT binary patch literal 1874 zcmV-Y2d(%YiwFP!000001JzmCj@!r;{S`tl^P&Q3FVb(V4&q7T3e)Ls?+4bi zcYlAL?7dh5BX=Pp2~8Ct44-eJUo|~ z7ZgaET1TYgkys-Y$+YFl1!E(??B#IZ1=xB8>v{6S1K>XOm#1d*eN}Fr`kyUOGmwHs z6*X}xa3Z7#By~a)gD9IAqchUsf(llxc^yl&t(JfkRuJ;Kvv|Lwav;5?8Odz4M1rLx zLqZAT&29`t%2~%A;PkrMzcqUXm8V6M}xGE#*8=@&^qfF zv8YQDjY0c-bYQdDi1f-T$7|SC(pd3`*UpQEnxyAxcFf+oo+r)W4X+`u!1wz&>wo#D ztwOtCQ+YUG0YU97<*lU}S3jSJrI|cfY!D_%7#%-i4^fMUpwvrm1QEh|^i_qj49Xzy zf@^M~0w(s-{+JibGWmpbS4S4NWAmh)Fos`)!vtv)@QjG`NAvM-hu{!^ zZ_$1X8^t_%4<(*E2Ew6W`i0%}WV?PVRLN}`6*VN4j1#FDBdL;+WLzu5sLZ0J*MoXO za|7AzwWU%VoOI1wkUVB{xyg|)9A1G9$>-AB)o&s9m1-KsMx^wXS9f;3PWt;_f8)dW z#wNiYm))mL?N@n>Fh{rC;G9wC+iEJaiph)-tuPx&=>$n>stAwNSkJRmhp-oBw_mb5 z;Z4=1`4lr>Arp;iZN7`~r%3GC>Pm`pM0KDCC8Y_5c+D`vGLF@dWsU?BrC~v&%4K`d z|6D#4$ps{vWs;pF`#(PbImno6KaMZkrgep%npIKv~ zyTIt<-Cstlf=gU}ufTrrAkbJHHP@11AjE_x4YKGccUZ3nBT5o^_&MJC^{jknl~O(N=f_?GnfG-_N*ig7V82Rm14q4E9J@LcUb70qT_et5tn5WtO~sj(h!Iedoh9kN>ibT z77#?_V5BvBWVWa*a6jJsb>?~Dn2a%w_j}z|4s02?pf$QtsRNn((Yk1VK`Tgdw=?>O z-sr_Zff;Mwgn^O3v_b_sY#tzsL`23F%^U@%E+|E}=k4mJ-%}xaLHa$5?PPL20(JE9 zJNaP4;7RLnJh8_FZMm^71f4=gd@yLP64*V_pow5Acq4qIAkT|)`gP~)R;CyFz*X`1 zzWLk%RfN1gRYIQd{F57Xpae}rrUj8QG9n$q<4meZ%2Nr!Tid_=oOa&-GZx-3XMT(S znS7ToAL_PM{e#6G{qEE=oDB|?p_m1;(7d^ah?R|r_)}1hZ0IZuLjPUz`hckbbYZr7 z`*QTuGu~U~UTqwjThyYN|; zNj>?!s9k<0(4BtB{@P9WTL-%D%KGSg+L-%HPHs((O48sRR#O(5bmFn3V#ZnB?@H$QluJpBR15GvXtw*TDR-ZZsFNy{{$lp7)}&xq5( z5bh)eOJ&NSEnv2vq1o^=^lX2{zZH26A^A&QEJOKtB&t{cIr34iF}MGqU&gow#DKp1 M4=Tg-eB>Vh0Kf>Yv;Y7A literal 0 HcmV?d00001 diff --git a/test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9.headers b/test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9.headers new file mode 100644 index 0000000..7b2cb4a --- /dev/null +++ b/test/fixtures/c907a9892b9dacd1c8f6a85cf9b95fb9.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:42 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "574", + "x-ratelimit-reset": "1481235043", + "server": "Plack::Handler::Starlet", + "etag": "W/\"a60590c307227cfa6ee8fff91153f1bc\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist?release=2ac3cbf2-f0d0-3678-af5f-b62dcb051bc0&inc=artist-rels&fmt=json", + "time": 1544, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec b/test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec new file mode 100644 index 0000000000000000000000000000000000000000..8c63d6f7b1efaeea30a5c7f702ec17e294e2a0ee GIT binary patch literal 1290 zcmV+l1@-zLiwFP!000001FcuvZrer>{S`tlebEAY<6it$qd?F!K~p4YQ4~cnyF2R; zp-6+IQW%E*y+cyg&5~W$)swi~%j`L4&J6Dt9o8^ZZPPEV{kRLB^sHT z6s2dnEDdu)B<8&KFJ zXg|SOv##qMR~hOa zpNeXpedZ#2FjDf)nM{GFj7&>Af{_A~PG#ei2V=}d@~+$VD|W>v2sIYaq>)0xyBazI z|GWNyO{+nvQU;b{j!cJGGM8P+JkM4bU!sWVX*QobXtPsY)fcze^|XGXVRz3UL$**R zCKDK@t(Gi6)(n+P4lE=t{n0(=RXiwVOU(!d&9n-ZR&mY(@)SuqQu(twd<(bGV2|wk z6?RpGrdX}}DpvGojDDwwLok1C+GX*3`?cL)dweQr{NR2o=(-Bivtsm&D<=7Q9iIyB zeD0rh497>6b9XuW&nbW8;sw($Mz~e{vkCI5lqdu0Xt-w{GLSz2rG(&t?wxb6f)pdg z-sV=g3M9=o7lEiflF&IpPbWB?od`-Y7Zjb~g=RkH%(x(l%IuRc;Y1xDYUqb5j%p~b z=YuZ2**qx!>FB0Ne2!5Y6_}k;6JeBkiKOyi$q21O4;NDNFuGsXB+I)MHV-a-;KI9i z$1ePDQGSUF&*Z+)K3`GmMxc+5J`>tLnt5~^&i|pnQ?sHeArOr*`_amA^eJH(%BWBz zX*j=Rvqz?mFx1$eVRHNC(2Y*z_228>;$~gZY8tK)Qt_>gL=Qc+T}1#xy?DAXk~LB3 z;+hG5+{}y|y~+-}mLh_q6jeG?vQnA!XbejTQcJD4=4NjPx6olT9Fem{@FSA@zr&`P zx}ihF=fPz$&e+vVDWkE%F&?Q?(J4pK6t3VpdL4BvV3wNro~hj(sKN3AF`^p7sz?LuB(ZjC)$*G&I8Gt$D(-7 zEFKAQLx9G1-3;9wJ-)diu-pKqzjDt^O$C_Yx{6tc%}r{e%Hn;0Xb5*L_;lo+7*3`j4=01v|Q zOOmc`tH~rdry6O!)8#mob7@tnOIiBS9&SeIb+qC=On6La??Rtqh>|`a6i4P9Pz-@S zF~DkSMGeR@BnufI384Ch-EG^}7r3wbmMKBflPtDr_OdtE?A?#Qjxjyjgf3H8q}HA~ z#4)Thjnz>*w(sdQ%^-{O6CQoD17!RODFofal?P{zRPPOE2g5_S;xOEUWuKdBz*PKH zH8-hUol<-Ha_(nIi~Cu1f03RYcE}B2Ch# zNM=qc`aV-U@HAT9%<{ZMnWU29Ky!Rz3KRW{ff`>=6;#m&od$yIA0H1!loSsD03Z)> AIRF3v literal 0 HcmV?d00001 diff --git a/test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec.headers b/test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec.headers new file mode 100644 index 0000000..5fefca3 --- /dev/null +++ b/test/fixtures/d1a0073e6dcac919d8fdf8be12bfcbec.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:47 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "299", + "x-ratelimit-reset": "1481235047", + "server": "Plack::Handler::Starlet", + "etag": "W/\"fa1c3dc12994eab7fe0dcb44b627373c\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist/4d5447d7-c61c-4120-ba1b-d7f471d385b9?inc=artist-rels&fmt=json", + "time": 538, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff b/test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff new file mode 100644 index 0000000000000000000000000000000000000000..f30b97c7ab912a2ac4acc1115cd0a654b79f1d9f GIT binary patch literal 1225 zcmV;)1UCC0iwFP!000001Ep8XZsSG}{1rlnoZP^?I1k^l2#^HXBpW1~90DVlM~{|R zi4-WxfnoUH(D}ZR?)_@luRcEA>~FYzT%>C2*P&YOhVaHahRCcl6p4tSna&iMPY`^m z!6=kGm)0ezj*R_+D*{veRjtCVeHfr0iGE(aDaKO^0uXRn)dOm4>2#`EjL!ga)Bfw* zM5n%j=oxP3xW9tv6IN$fzeMbSI!MPX;|ih+gqjnRHfaaRh{PpxF@-pU|2he?1pdCM zK2LNyJRV4YdY%0%X`a*BJW&_b~+*ADj2T@!Uy7rxc%+m9fAaFmXm)Um=L|3d?@AeM1SK`bQa1MNL?p&mI(d@(<1e zaFH`(+1L=1qCIsEUgK-Qg3QgSL*ND4%uhtiy*(Q@b{JZ$=B6oJ0FgHDcRYSG?}0Q zM!!L^WWYKa^*qm9m5ye;82V&SD&slKjc>6&SJd<6f7wzG$#6>W=&b@L70sNECOwBV z03`H62_>1Lw)#YT#b#G`H1g1>{;nSkTJ&EYX1ytu=QK(%VL*D}AZUtO1jQ)j%JQKX z6MY~#UC1FeX;dv;aCfNfk9E~yDt@Z!Wop(h67XV^_*+#J!FJ>89^6r-N>axJp$-}s zj7A(zQ;s_o>X?Fm_Tf!0d*5t}Z|fzF6+gQ;c8jc7)JToOgkImW1m|cB&8QJeOX2JJ zZt--;`G@_;yX>L0wDPlG&6>%n4NY3VMkY(@^)jLZDQR?};hkn-DV-6L1(tFTcvB6O zGonK(D@ta2?yGHmSnq$h;57AX`uF2*k7>L{>Lin7p1$i6NKEusB!LSWzLm5Jm3Mny z=pP!JOGd(1T!7NVzAZ^~PUzBbM%wdiU$ut>3~xrET$BvKS|30Kk--~9v}!NPkc`iG n&S_5)Slwg0X`0nkcVenLc>m*{6YU*eczXH|bSK7r$qoPjD+Xu~ literal 0 HcmV?d00001 diff --git a/test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff.headers b/test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff.headers new file mode 100644 index 0000000..5cfc8ba --- /dev/null +++ b/test/fixtures/f2a7af3e3a39e31ee0d9d74b5820ebff.headers @@ -0,0 +1,29 @@ +{ + "statusCode": 200, + "headers": { + "date": "Thu, 08 Dec 2016 22:10:44 GMT", + "content-type": "application/json; charset=utf-8", + "transfer-encoding": "chunked", + "connection": "keep-alive", + "keep-alive": "timeout=15", + "vary": "Accept-Encoding", + "x-ratelimit-limit": "700", + "x-ratelimit-remaining": "550", + "x-ratelimit-reset": "1481235045", + "server": "Plack::Handler::Starlet", + "etag": "W/\"8816493f7872c79a0eabce9b71262302\"", + "access-control-allow-origin": "*", + "content-encoding": "gzip" + }, + "url": "http://musicbrainz.org:80/ws/2/artist/42a8f507-8412-4611-854f-926571049fa0?inc=artist-rels&fmt=json", + "time": 2138, + "request": { + "method": "GET", + "headers": { + "User-Agent": "graphbrainz/3.1.0 ( https://github.com/exogen/graphbrainz )", + "host": "musicbrainz.org", + "accept-encoding": "gzip, deflate", + "accept": "application/json" + } + } +} \ No newline at end of file diff --git a/test/schema.js b/test/schema.js index 346d4cd..2e6af39 100644 --- a/test/schema.js +++ b/test/schema.js @@ -8,11 +8,9 @@ import createLoaders from '../src/loaders' sepia.fixtureDir(path.join(__dirname, 'fixtures')) -test.beforeEach(t => { - const client = new MusicBrainz() - const loaders = createLoaders(client) - t.context = { client, loaders } -}) +const client = new MusicBrainz() +const loaders = createLoaders(client) +const context = { client, loaders } test('schema has a lookup query', t => { const query = ` @@ -26,7 +24,7 @@ test('schema has a lookup query', t => { } } ` - return graphql(schema, query, null, t.context).then(result => { + return graphql(schema, query, null, context).then(result => { t.deepEqual(result, { data: { lookup: { @@ -58,7 +56,7 @@ test('schema has a search query', t => { } } ` - return graphql(schema, query, null, t.context).then(result => { + return graphql(schema, query, null, context).then(result => { const { recordings } = result.data.search t.true(recordings.totalCount > 0) t.true(recordings.edges.length === 25) @@ -89,10 +87,87 @@ test('schema has a browse query', t => { } } ` - return graphql(schema, query, null, t.context).then(result => { + return graphql(schema, query, null, context).then(result => { const { releaseGroups } = result.data.browse t.true(releaseGroups.totalCount > 0) t.true(releaseGroups.edges.length > 0) releaseGroups.edges.forEach(edge => t.truthy(edge.node.title)) }) }) + +test('supports deeply nested queries', t => { + const query = ` + query AppleRecordsMarriages { + search { + labels(query: "Apple Records", first: 1) { + edges { + node { + name + disambiguation + country + releases(first: 1) { + edges { + node { + title + date + artists { + edges { + node { + name + ...bandMembers + } + } + } + } + } + } + } + } + } + } + } + + fragment bandMembers on Artist { + relationships { + artists(direction: "backward", type: "member of band") { + edges { + node { + type + target { + ... on Artist { + name + ...marriages + } + } + } + } + } + } + } + + fragment marriages on Artist { + relationships { + artists(type: "married") { + edges { + node { + type + direction + begin + end + target { + ... on Artist { + name + } + } + } + } + } + } + } + ` + return graphql(schema, query, null, context).then(result => { + const { labels } = result.data.search + t.true(labels.edges.length > 0) + t.is(labels.edges[0].node.releases.edges.length, 1) + }) +})