Compare commits
1 Commits
fix/98-off
...
fix/59
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbc513821f |
@@ -206,18 +206,6 @@
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="panel" aria-labelledby="resources-title">
|
||||
<h2 class="section-title" id="resources-title">More crisis lines</h2>
|
||||
<ul>
|
||||
<li><strong>National Domestic Violence Hotline</strong> — call 1-800-799-7233 or text START to 88788</li>
|
||||
<li><strong>Trevor Project</strong> (LGBTQ youth) — call 1-866-488-7386 or text START to 678-678</li>
|
||||
<li><strong>Veterans Crisis Line</strong> — call 988 then press 1, or text 838255</li>
|
||||
<li><strong>SAMHSA Helpline</strong> (substance use) — call 1-800-662-4357</li>
|
||||
<li><strong>Trans Lifeline</strong> — call 877-565-8860</li>
|
||||
</ul>
|
||||
<p class="small" style="margin-top: 14px;">All lines are free, confidential, and available 24/7.</p>
|
||||
</section>
|
||||
|
||||
<section class="panel" aria-labelledby="hope-title">
|
||||
<h2 class="section-title" id="hope-title">Stay through the next ten minutes</h2>
|
||||
<p>Do not solve your whole life right now. Stay for the next breath. Then the next one.</p>
|
||||
|
||||
@@ -680,7 +680,7 @@ html, body {
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<a href="/about" aria-label="About The Door">about</a>
|
||||
<a href="/about.html" aria-label="About The Door">about</a>
|
||||
<button id="safety-plan-btn" aria-label="Open My Safety Plan">my safety plan</button>
|
||||
<button id="clear-chat-btn" aria-label="Clear chat history">clear chat</button>
|
||||
</footer>
|
||||
|
||||
24
tests/test_about_link.py
Normal file
24
tests/test_about_link.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import pathlib
|
||||
import unittest
|
||||
|
||||
|
||||
ROOT = pathlib.Path(__file__).resolve().parents[1]
|
||||
INDEX_HTML = ROOT / 'index.html'
|
||||
ABOUT_HTML = ROOT / 'about.html'
|
||||
|
||||
|
||||
class TestAboutLink(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.html = INDEX_HTML.read_text(encoding='utf-8')
|
||||
|
||||
def test_about_page_exists(self):
|
||||
self.assertTrue(ABOUT_HTML.exists(), 'about.html should exist for static serving')
|
||||
|
||||
def test_footer_about_link_targets_static_about_html(self):
|
||||
self.assertIn('href="/about.html"', self.html)
|
||||
self.assertNotIn('href="/about"', self.html)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -1,52 +0,0 @@
|
||||
"""
|
||||
Test: offline crisis resources load when network is unavailable.
|
||||
|
||||
Verifies that the service worker caches the crisis-offline.html page
|
||||
and that it serves as the navigation fallback when offline.
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def test_service_worker_precaches_crisis_page():
|
||||
"""Service worker precache list includes crisis-offline.html."""
|
||||
sw_path = os.path.join(os.path.dirname(__file__), '..', 'sw.js')
|
||||
with open(sw_path) as f:
|
||||
sw_content = f.read()
|
||||
assert '/crisis-offline.html' in sw_content, "crisis-offline.html must be in PRECACHE_ASSETS"
|
||||
|
||||
def test_crisis_offline_page_has_988():
|
||||
"""Offline page contains 988 call link."""
|
||||
page_path = os.path.join(os.path.dirname(__file__), '..', 'crisis-offline.html')
|
||||
with open(page_path) as f:
|
||||
content = f.read()
|
||||
assert 'tel:988' in content, "Offline page must have 988 call link"
|
||||
assert '741741' in content, "Offline page must have Crisis Text Line (741741)"
|
||||
|
||||
def test_crisis_offline_page_has_local_resources():
|
||||
"""Offline page contains additional local crisis resources."""
|
||||
page_path = os.path.join(os.path.dirname(__file__), '..', 'crisis-offline.html')
|
||||
with open(page_path) as f:
|
||||
content = f.read()
|
||||
assert 'National Domestic Violence Hotline' in content, "Must include domestic violence hotline"
|
||||
assert 'Trevor Project' in content, "Must include Trevor Project"
|
||||
assert 'Veterans Crisis Line' in content, "Must include Veterans Crisis Line"
|
||||
|
||||
def test_crisis_offline_page_self_contained():
|
||||
"""Offline page must work without external resources (inline styles, no external scripts)."""
|
||||
page_path = os.path.join(os.path.dirname(__file__), '..', 'crisis-offline.html')
|
||||
with open(page_path) as f:
|
||||
content = f.read()
|
||||
# No external CSS files
|
||||
assert 'rel="stylesheet"' not in content, "Offline page must not depend on external stylesheets"
|
||||
# No external JS files
|
||||
assert '<script src=' not in content, "Offline page must not depend on external scripts"
|
||||
|
||||
def test_offline_fallback_path_configured():
|
||||
"""Service worker configures crisis-offline.html as the offline fallback."""
|
||||
sw_path = os.path.join(os.path.dirname(__file__), '..', 'sw.js')
|
||||
with open(sw_path) as f:
|
||||
sw_content = f.read()
|
||||
assert "OFFLINE_FALLBACK_PATH" in sw_content, "Must define OFFLINE_FALLBACK_PATH"
|
||||
assert "crisis-offline" in sw_content, "Fallback must reference crisis-offline.html"
|
||||
Reference in New Issue
Block a user