aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/test_generate.py
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-13 17:27:30 -0500
committerCraig Jennings <c@cjennings.net>2026-06-13 17:27:30 -0500
commita0d45cbb48ffe97579a5b4797e48508a8eac4ca4 (patch)
treeada761d64d614a75394431ce4a4f0666e7fc5740 /scripts/theme-studio/test_generate.py
parent87bf78550ef412b86745b71f414b00ca40a91d76 (diff)
downloaddotemacs-a0d45cbb48ffe97579a5b4797e48508a8eac4ca4.tar.gz
dotemacs-a0d45cbb48ffe97579a5b4797e48508a8eac4ca4.zip
Add theme studio Rust and Zig samples
Diffstat (limited to 'scripts/theme-studio/test_generate.py')
-rw-r--r--scripts/theme-studio/test_generate.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/theme-studio/test_generate.py b/scripts/theme-studio/test_generate.py
index e845085e..a4a5f2bf 100644
--- a/scripts/theme-studio/test_generate.py
+++ b/scripts/theme-studio/test_generate.py
@@ -123,6 +123,35 @@ class AssembledPage(unittest.TestCase):
self.assertEqual(generate.HTML.count("</script>"), 1)
+class LanguageSamples(unittest.TestCase):
+ def _tokens(self, lang):
+ return [tok for line in generate.SAMPLES[lang] for tok in line]
+
+ def test_rust_and_zig_are_available_in_the_language_selector(self):
+ self.assertIn("Rust", generate.SAMPLES)
+ self.assertIn("Zig", generate.SAMPLES)
+
+ def test_rust_sample_exercises_language_specific_categories(self):
+ tokens = self._tokens("Rust")
+ cats = {k for k, _ in tokens}
+ text = "".join(t for _, t in tokens)
+ for cat in ("dec", "ty", "bi", "kw", "op", "var"):
+ self.assertIn(cat, cats)
+ self.assertIn("'a", text)
+ self.assertIn("trait", text)
+ self.assertIn("vec!", text)
+
+ def test_zig_sample_exercises_language_specific_categories(self):
+ tokens = self._tokens("Zig")
+ cats = {k for k, _ in tokens}
+ text = "".join(t for _, t in tokens)
+ for cat in ("bi", "kw", "ty", "con", "op", "prop"):
+ self.assertIn(cat, cats)
+ self.assertIn("comptime", text)
+ self.assertIn("@import", text)
+ self.assertIn("error.MissingColor", text)
+
+
class FacesHelper(unittest.TestCase):
def test_strips_prefix_and_derives_label_and_merges_seed(self):
# Normal: the prefix comes off the label, and the per-face seed is attached.