chore: deactivate custom statics manager for test by default

And add one file that run it and check all js files are loaded.
This commit is contained in:
Yohan Boniface 2024-01-17 18:42:46 +01:00
parent 1b8e6164ed
commit 96ae7ddbc7
3 changed files with 47 additions and 1 deletions

View file

@ -28,7 +28,7 @@
<script src="{% static 'umap/vendors/colorbrewer/colorbrewer.js' %}" defer></script>
<script src="{% static 'umap/vendors/simple-statistics/simple-statistics.min.js' %}" defer></script>
{% if locale %}
{% with 'umap/locale/'|add:locale|add:'.js' as path %}
{% with "umap/locale/"|add:locale|add:".js" as path %}
<script src="{% static path %}" defer></script>
{% endwith %}
{% endif %}

View file

@ -0,0 +1,43 @@
import re
import shutil
import tempfile
import pytest
from django.core.management import call_command
from django.utils.translation import override
from playwright.sync_api import expect
@pytest.fixture
def staticfiles(settings):
static_root = tempfile.mkdtemp(prefix="test_static")
settings.STATIC_ROOT = static_root
try:
call_command("collectstatic", "--noinput")
yield
finally:
shutil.rmtree(static_root)
def test_javascript_have_been_loaded(
map, live_server, datalayer, page, settings, staticfiles
):
settings.STORAGES["staticfiles"][
"BACKEND"
] = "umap.utils.UmapManifestStaticFilesStorage"
datalayer.settings["displayOnLoad"] = False
datalayer.save()
map.settings["properties"]["defaultView"] = "latest"
map.save()
with override("fr"):
url = f"{live_server.url}{map.get_absolute_url()}"
assert "/fr/" in url
page.goto(url)
# Hash is defined, so map is initialized
expect(page).to_have_url(re.compile(r".*#7/48\..+/13\..+"))
expect(page).to_have_url(re.compile(r".*/fr/"))
# Should be in French, so hashed locale file has been loaded correctly
button = page.get_by_text("Voir les calques")
expect(button).to_be_visible()
layers = page.locator(".umap-browse-datalayers li")
expect(layers).to_have_count(1)

View file

@ -5,6 +5,9 @@ from umap.settings.base import * # pylint: disable=W0614,W0401
SECRET_KEY = "justfortests"
FROM_EMAIL = "test@test.org"
EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend"
STORAGES["staticfiles"][
"BACKEND"
] = "django.contrib.staticfiles.storage.StaticFilesStorage"
if os.environ.get("GITHUB_ACTIONS", False) == "true":
DATABASES = {