aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-09 18:12:59 +0100
committerDanilo M. <danix@danix.xyz>2026-11-09 18:12:59 +0100
commit2c098221f4ed09d772df9bece5c71912f1c5e849 (patch)
tree656c77daa1e71bee1ebfc2fbc5a5d5b3b7841757 /tests
parent58b6f3feda3662c2004bdfaa1e7300f14dabd931 (diff)
downloaddeck-it-2c098221f4ed09d772df9bece5c71912f1c5e849.tar.gz
deck-it-2c098221f4ed09d772df9bece5c71912f1c5e849.zip
feat: frontend shell and UDT-themed layout
Diffstat (limited to 'tests')
-rw-r--r--tests/test_frontend.py65
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()