"""Tests for the --link-css and --embed-css options in generate_website.py""" import sys import pytest import generate_website from generate_website import STYLES, generate_builtin_css, generate_html def _render(**kwargs) -> str: return generate_html( bot_name="TestBot", title="Test Site", introduction="Test intro", commands=[], monitor_channels=[], channels_data={}, **kwargs, ) def test_generate_builtin_css_includes_css_variables(): css = generate_builtin_css('default') assert ':root' in css assert '--bg-primary' in css assert '--accent-blue' in css assert 'body {' in css def test_generate_builtin_css_includes_style_overrides(): css = generate_builtin_css('minimalist') assert STYLES['minimalist']['css_overrides'].strip() in css def test_default_output_has_no_custom_css(): html = _render(style='default') assert 'Custom CSS overrides' not in html stylesheets = [line for line in html.splitlines() if 'rel="stylesheet"' in line] assert len(stylesheets) == 1 assert 'fonts.googleapis.com/css2' in stylesheets[0] def test_backwards_compatible_call_without_css_params(): html = generate_html("TestBot", "Test Site", "Test intro", [], [], {}, 'default') assert '') < html.index(link) < html.index('') assert 'fonts.googleapis.com' in html assert '--bg-primary' in html def test_link_css_is_escaped(): html = _render(style='default', link_css='style.css?v=1&theme=dark">') assert 'href="style.css?v=1&theme=dark"><script>' in html assert '