blob: 9dba8cd8cabc715463d08b23d200dfe6f0d70d58 [file] [log] [blame]
Akron0e1ed242018-10-11 13:22:00 +02001use Mojo::Base -strict;
2use Test::More;
3use Test::Mojo;
4use Mojo::File qw/path/;
5
Helge3d1d04d2026-01-28 18:04:39 +01006# Get API version from Kalamar config (respects env and config file)
7my $api_version = Test::Mojo->new('Kalamar')->app->config('Kalamar')->{api_version};
8
Akron0e1ed242018-10-11 13:22:00 +02009# Get the fixture path
Akron73f36082018-10-25 15:34:59 +020010my $mock_server = path(Mojo::File->new(__FILE__)->dirname, 'server')->child('mock.pl');
Akron0e1ed242018-10-11 13:22:00 +020011
Akron73f36082018-10-25 15:34:59 +020012my $t = Test::Mojo->new($mock_server);
Akron0e1ed242018-10-11 13:22:00 +020013
Helge3d1d04d2026-01-28 18:04:39 +010014$t->get_ok("/v$api_version")
Akron0e1ed242018-10-11 13:22:00 +020015 ->status_is(200)
Helge3d1d04d2026-01-28 18:04:39 +010016 ->content_is("Fake server available: $api_version");
Akron0e1ed242018-10-11 13:22:00 +020017
Helge3d1d04d2026-01-28 18:04:39 +010018$t->get_ok("/v$api_version/search?ql=cosmas3")
Akron0e1ed242018-10-11 13:22:00 +020019 ->status_is(400)
20 ->json_is('/errors/0/0',"307")
21 ->json_is('/errors/0/1',"cosmas3 is not a supported query language!")
22 ;
23
Helge3d1d04d2026-01-28 18:04:39 +010024my $err = $t->get_ok("/v$api_version/search?q=server_fail")
Akron0e1ed242018-10-11 13:22:00 +020025 ->status_is(500)
26 ->content_like(qr!Oooops!)
Akron58c60992021-09-07 13:11:43 +020027 ->tx->res->dom->at('#error')
Akron0e1ed242018-10-11 13:22:00 +020028 ;
Akron58c60992021-09-07 13:11:43 +020029is(defined $err ? $err->text : '', '');
Akron0e1ed242018-10-11 13:22:00 +020030
Helge3d1d04d2026-01-28 18:04:39 +010031$err = $t->get_ok("/v$api_version/search?q=[orth=das&ql=poliqarp&offset=0&count=25")
Akron0e1ed242018-10-11 13:22:00 +020032 ->status_is(400)
33 ->json_is('/errors/0/0',302)
34 ->json_is('/errors/0/1','Parantheses/brackets unbalanced.')
35 ->json_is('/errors/1/0',302)
36 ->json_is('/errors/1/1','Could not parse query >>> [orth=das <<<.')
Akron58c60992021-09-07 13:11:43 +020037 ->tx->res->dom->at('#error')
Akron0e1ed242018-10-11 13:22:00 +020038 ;
Akron58c60992021-09-07 13:11:43 +020039is(defined $err ? $err->text : '', '');
Akron0e1ed242018-10-11 13:22:00 +020040
Akron58c60992021-09-07 13:11:43 +020041
Helge3d1d04d2026-01-28 18:04:39 +010042$err = $t->get_ok("/v$api_version/search?q=baum&ql=poliqarp&offset=0&count=25")
Akron32396632018-10-11 17:08:37 +020043 ->status_is(200)
44 ->json_is('/meta/count', 25)
45 ->json_is('/meta/serialQuery', "tokens:s:Baum")
46 ->json_is('/matches/0/docSigle', "GOE/AGI")
Akron58c60992021-09-07 13:11:43 +020047 ->tx->res->dom->at('#error')
Akron32396632018-10-11 17:08:37 +020048 ;
Akron58c60992021-09-07 13:11:43 +020049is(defined $err ? $err->text : '', '');
50
Helge3d1d04d2026-01-28 18:04:39 +010051$err = $t->get_ok("/v$api_version/search?q=baum&ql=poliqarp&offset=0&count=25&fields=textSigle")
Akron2fc697a2024-06-28 10:35:10 +020052 ->status_is(200)
53 ->json_is('/meta/count', 25)
54 ->json_is('/meta/serialQuery', "tokens:s:Baum")
55 ->json_hasnt('/matches/0/docSigle')
56 ->json_is('/matches/0/textSigle', "GOE/AGI/00000")
57 ->tx->res->dom->at('#error')
58 ;
59is(defined $err ? $err->text : '', '');
60
Akron32396632018-10-11 17:08:37 +020061
Helge3d1d04d2026-01-28 18:04:39 +010062$t->get_ok("/v$api_version/corpus/WPD15/232/39681/p2133-2134?spans=false&foundry=*")
Akronb80341d2018-10-15 19:46:23 +020063 ->status_is(200)
64 ->json_is('/textSigle', 'WPD15/232/39681')
65 ;
Akron32396632018-10-11 17:08:37 +020066
Akron0e1ed242018-10-11 13:22:00 +020067done_testing;
68__END__
Akron6d49c1f2018-10-11 14:22:21 +020069