search: display error messages (#83722)
gitea/combo/pipeline/head This commit looks good Details

This commit is contained in:
Nicolas Roche 2023-11-09 15:39:29 +01:00
parent e697ef2b6d
commit 524faf00bc
3 changed files with 26 additions and 3 deletions

View File

@ -293,7 +293,7 @@ class SearchCell(CellBase):
return render_response(service)
if results.get('err'):
return render_response(service)
return render_response(service, results)
if service.get('data_key'):
results['data'] = results.get(service['data_key']) or []

View File

@ -5,7 +5,15 @@
{% elif cell.has_multiple_search_services %}
<p class="search-service-label">{{ search_service_label }}</p>
{% endif %}
{% if results.data %}
{% if results.err %}
<div class="warningnotice">
{% if results.err_desc %}
{{ results.err_desc }}
{% else %}
{% trans "…service unavailable." %}
{% endif %}
</div>
{% elif results.data %}
<div class="links-list">
<ul>
{% for item in results.data %}

View File

@ -317,12 +317,27 @@ def test_search_custom_templates(app):
assert '<li><a href="http://example.net/123/">A B</a>' in resp.text
assert '<div>description A</div>' in resp.text
# empty data is handled
response = {'err': 0, 'data': []}
mock_json.json.return_value = response
resp = app.get('/ajax/search/%s/search2/?q=foo' % cell.pk, status=200)
assert 'no result found' in resp.text
# err != 0 is handled
response = {'err': 1, 'data': 'something'}
mock_json.json.return_value = response
resp = app.get('/ajax/search/%s/search2/?q=foo' % cell.pk, status=200)
assert 'no result found' in resp.text
assert 'service unavailable.' in resp.text
# err_desc is handled too
response = {'err': 1, 'data': 'something', 'err_desc': 'boom'}
mock_json.json.return_value = response
resp = app.get('/ajax/search/%s/search2/?q=foo' % cell.pk, status=200)
assert 'service unavailable.' not in resp.text
assert 'boom' in resp.text
def test_search_cell_visibility(settings, app):