diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-09 18:12:59 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-09 18:12:59 +0100 |
| commit | 2c098221f4ed09d772df9bece5c71912f1c5e849 (patch) | |
| tree | 656c77daa1e71bee1ebfc2fbc5a5d5b3b7841757 /tests/test_frontend.py | |
| parent | 58b6f3feda3662c2004bdfaa1e7300f14dabd931 (diff) | |
| download | deck-it-2c098221f4ed09d772df9bece5c71912f1c5e849.tar.gz deck-it-2c098221f4ed09d772df9bece5c71912f1c5e849.zip | |
feat: frontend shell and UDT-themed layout
Diffstat (limited to 'tests/test_frontend.py')
| -rw-r--r-- | tests/test_frontend.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/test_frontend.py b/tests/test_frontend.py new file mode 100644 index 0000000..d90bf48 --- /dev/null +++ b/tests/test_frontend.py @@ -0,0 +1,65 @@ +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +import http.client +import os +import socket +import tempfile +import threading +import unittest + +import deckit.module as mod +import deckit.server as srv + + +class UnixConnection(http.client.HTTPConnection): + def __init__(self, path): + super().__init__("localhost") + self.path = path + + def connect(self): + self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.sock.connect(self.path) + + +class Frontend(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.dir = tempfile.TemporaryDirectory() + cls.sock = os.path.join(cls.dir.name, "http.sock") + srv.TOKEN = "t" + srv.REGISTRY = mod.Registry([]) + cls.server = srv.UnixHTTPServer(cls.sock, srv.Handler) + threading.Thread(target=cls.server.serve_forever, daemon=True).start() + + @classmethod + def tearDownClass(cls): + cls.server.shutdown() + cls.server.server_close() + cls.dir.cleanup() + + def get(self, path): + conn = UnixConnection(self.sock) + conn.request("GET", path, headers={"Host": "127.0.0.1:8765"}) + r = conn.getresponse() + data = r.read() + conn.close() + return r.status, data + + def test_page_references_assets(self): + status, body = self.get("/") + self.assertEqual(status, 200) + text = body.decode() + self.assertIn("app.js", text) + self.assertIn("deck.css", text) + + def test_css_uses_udt_vars(self): + status, body = self.get("/deck.css") + self.assertEqual(status, 200) + self.assertIn(b"--udt-", body) + + +if __name__ == "__main__": + unittest.main() |
