02_search.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. use \WikipaliApi\Api\SearchApi;
  3. use \WikipaliApi\Api\SearchSuggestApi;
  4. use \WikipaliApi\Model\PostApiV3SearchRequest;
  5. test('GET /v3/search?q=dukkha → 200', function () {
  6. $res = request(fn () => api(SearchApi::class)->getApiV3SearchWithHttpInfo(fixtures()['search_q']));
  7. assert_status(200, $res, 'search GET');
  8. // spec 说 data 是数组,实际是 {success,data:{took,hits}}(漂移,见 README)
  9. assert_has_key('data', $res['body'], 'search GET');
  10. });
  11. test('POST /v3/search → 200(与 GET 等价,参数在 body)', function () {
  12. $body = new PostApiV3SearchRequest();
  13. $body->setQ(fixtures()['search_q']);
  14. $res = request(fn () => api(SearchApi::class)->postApiV3SearchWithHttpInfo($body));
  15. assert_status(200, $res, 'search POST');
  16. assert_has_key('data', $res['body'], 'search POST');
  17. });
  18. test('GET /v3/search/{id} → 200(真实文档 id)', function () {
  19. $res = request(fn () => api(SearchApi::class)->getApiV3SearchSearchWithHttpInfo(fixtures()['search_doc_id']));
  20. assert_status(200, $res, 'search show');
  21. assert_has_key('data', $res['body'], 'search show');
  22. });
  23. test('GET /v3/search/{id} → 404(不存在的文档)', function () {
  24. $res = request(fn () => api(SearchApi::class)->getApiV3SearchSearchWithHttpInfo('no_such_doc_xyz'));
  25. assert_status(404, $res, 'search show 404');
  26. assert_problem($res, 'search show 404');
  27. });
  28. test('GET /v3/search-suggest?q=dukkha → 200', function () {
  29. $res = request(fn () => api(SearchSuggestApi::class)->getApiV3SearchSuggestWithHttpInfo(fixtures()['search_q']));
  30. assert_status(200, $res, 'search-suggest');
  31. assert_has_key('data', $res['body'], 'search-suggest');
  32. });
  33. test('GET /v3/search-suggest?q= → 400(空查询)', function () {
  34. // 描述里写明「q 为空返回 400」;spec 只登记了 422,这里按实际 400 断言。
  35. $res = raw('GET', '/v3/search-suggest', ['q' => '']);
  36. assert_status(400, $res, 'search-suggest 空 q');
  37. });