mirror of
https://github.com/django-components/django-components.git
synced 2025-08-03 22:08:17 +00:00
feat(templatetags): fix #143, ability to preload components
This commit is contained in:
parent
021339d4a7
commit
f67cd37dea
2 changed files with 107 additions and 6 deletions
|
@ -86,6 +86,42 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
count=0,
|
||||
)
|
||||
|
||||
def test_preload_dependencies_render_when_no_components_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_dependencies preload='test' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
self.assertInHTML(
|
||||
'<link href="style.css" type="text/css" media="all" rel="stylesheet"/>',
|
||||
rendered,
|
||||
count=1,
|
||||
)
|
||||
|
||||
def test_preload_js_dependencies_render_when_no_components_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_js_dependencies preload='test' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_preload_css_dependencies_render_when_no_components_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_css_dependencies preload='test' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML(
|
||||
'<link href="style.css" type="text/css" media="all" rel="stylesheet"/>',
|
||||
rendered,
|
||||
count=1,
|
||||
)
|
||||
|
||||
def test_single_component_dependencies_render_when_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
|
@ -101,6 +137,21 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_preload_dependencies_render_once_when_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_dependencies preload='test' %}"
|
||||
"{% component 'test' variable='foo' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML(
|
||||
'<link href="style.css" type="text/css" media="all" rel="stylesheet"/>',
|
||||
rendered,
|
||||
count=1,
|
||||
)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_placeholder_removed_when_single_component_rendered(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
|
@ -111,6 +162,15 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
rendered = create_and_process_template_response(template)
|
||||
self.assertNotIn("_RENDERED", rendered)
|
||||
|
||||
def test_placeholder_removed_when_preload_rendered(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_dependencies preload='test' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertNotIn("_RENDERED", rendered)
|
||||
|
||||
def test_single_component_css_dependencies(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue