general: fix various errors in menu.json (#65374)

This commit is contained in:
Frédéric Péters 2022-05-17 23:13:06 +02:00
parent 6679f33a8a
commit 8f77d97133
3 changed files with 18 additions and 3 deletions

View File

@ -19,6 +19,6 @@ from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.homepage, name='manager-homepage'),
url(r'^$', views.homepage, name='lingo-manager-homepage'),
url(r'^menu.json$', views.menu_json),
]

View File

@ -18,6 +18,8 @@ import json
from django.http import HttpResponse
from django.urls import reverse
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView
@ -33,9 +35,9 @@ def menu_json(request):
json_str = json.dumps(
[
{
'label': label,
'label': force_text(label),
'slug': 'lingo',
'url': request.build_absolute_uri(reverse('manage-homepage')),
'url': request.build_absolute_uri(reverse('lingo-manager-homepage')),
}
]
)

View File

@ -19,3 +19,16 @@ def test_simple_user_access(app, simple_user):
def test_access(app, admin_user):
app = login(app)
assert app.get('/manage/', status=200)
def test_menu_json(app, admin_user):
app.get('/manage/menu.json', status=302) # login
app = login(app)
resp = app.get('/manage/menu.json')
assert resp.headers['content-type'] == 'application/json'
assert resp.json[0]['label'] == 'Payments'
resp = app.get('/manage/menu.json?callback=fooBar')
assert resp.headers['content-type'] == 'application/javascript'
assert resp.text.startswith('fooBar([{"')