"""
Los estáticos de producción: lo de Vite sale con su nombre, lo demás con hash.

Lo que se defiende es que la plantilla y las páginas pidan la aplicación por la
misma dirección. Con dos direcciones, el navegador la carga dos veces y la
segunda copia no tiene las rutas publicadas.
"""

import re

from apps.core.storage import StaticStorage
from config.settings import prod


def test_what_vite_built_keeps_its_name():
    storage = StaticStorage()

    assert storage.stored_name('dist/assets/app-CXo_ahuX.js') == 'dist/assets/app-CXo_ahuX.js'


def test_vite_assets_and_hashed_files_are_cached_forever():
    immutable = re.compile(prod.WHITENOISE_IMMUTABLE_FILE_TEST)

    assert immutable.search('/static/dist/assets/app-CXo_ahuX.js')
    assert immutable.search('/static/ai/watermark/blue.0d3f9c1a2b4e.png')
    assert not immutable.search('/static/ai/watermark/blue.png')
