#!/usr/bin/env python3
from __future__ import annotations

import unittest

from deploy_detail_page_public import rewrite_html


class DeployMetadataTests(unittest.TestCase):
    def test_rewrite_keeps_single_editor_script_with_project_metadata(self) -> None:
        html = '<html><body><main>ok</main><script src="./detail-page-editor.js" data-detail-page-editor></script></body></html>'
        out = rewrite_html(html, 'project-a', '/detail-page-api')
        self.assertEqual(out.count('detail-page-editor.js'), 1)
        self.assertIn('data-dpe-project-id="project-a"', out)
        self.assertIn('data-dpe-api-base="/detail-page-api"', out)
        self.assertIn('src="detail-page-editor.js"', out)

    def test_rewrite_injects_editor_script_when_missing(self) -> None:
        html = '<html><body><main>ok</main></body></html>'
        out = rewrite_html(html, 'project-b', '/detail-page-api')
        self.assertIn('detail-page-editor.js', out)
        self.assertIn('data-dpe-project-id="project-b"', out)

    def test_rewrite_can_cache_bust_editor_script(self) -> None:
        html = '<html><body><main>ok</main><script src="./detail-page-editor.js" data-detail-page-editor></script></body></html>'
        out = rewrite_html(html, 'project-c', '/detail-page-api', '12345')
        self.assertIn('src="detail-page-editor.js?v=12345"', out)
        self.assertIn('data-dpe-project-id="project-c"', out)


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