"""Tests for the 原理说明 panels:  python3 -m unittest scripts/test_gen_explain.py"""
import pathlib
import re
import sys
import unittest

sys.path.insert(0, str(pathlib.Path(__file__).resolve().parent))
import gen_explain  # noqa: E402

SAMPLE = {'lead': 'l', 'flow': [['js', 'f']], 'perf': ['p'], 'src': [['a.rs', '']]}
OPEN_TAG = re.compile(r'<details class="explain"([^>]*)>')


class Collapsed(unittest.TestCase):
    def test_rendered_panel_starts_collapsed(self):
        self.assertEqual(OPEN_TAG.search(gen_explain.render(SAMPLE)).group(1), '')

    def test_every_page_including_home_starts_collapsed(self):
        pages = sorted((gen_explain.ROOT / 'www').glob('*/index.html')) + [gen_explain.ROOT / 'www' / 'index.html']
        for page in pages:
            for attrs in OPEN_TAG.findall(page.read_text(encoding='utf-8')):
                self.assertNotIn('open', attrs, page)


if __name__ == '__main__':
    unittest.main()
