summaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_canonical_displays.py
blob: 627e3a097f9eb0da759a8886ebe18daf3237130f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import json
import subprocess
import unittest
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
EXTENSION = ROOT / "dot_local/share/gnome-shell/extensions/external-display@dotfiles"


class DisplayTests(unittest.TestCase):
    def test_metadata(self):
        metadata = json.loads((EXTENSION / "metadata.json").read_text())
        self.assertEqual(metadata["uuid"], "external-display@dotfiles")
        self.assertIn("50", metadata["shell-version"])

    def test_connection_changes_and_lifecycle(self):
        code = "\n".join(
            line
            for line in (EXTENSION / "extension.js").read_text().splitlines()
            if not line.startswith("import ")
        ).replace("export default class", "class")
        harness = (ROOT / "tests/fixtures/display-lifecycle.js").read_text()
        subprocess.run(
            ["node", "--input-type=module"],
            input=harness.replace("// EXTENSION", code),
            text=True,
            check=True,
        )