from __future__ import annotations import unittest from ptlinux.ui.components.update_dialog import ( release_history_state, release_notes_preview, update_version_heading, ) class UpdateDialogTests(unittest.TestCase): def test_release_notes_preview_shows_changes_without_build_footer(self) -> None: preview = release_notes_preview( "# Launcher 1.8.0\n\n" "## Highlights\n\n" "- Added channel-aware updates\n" "- Improved rollback\n\n" "---\n\nVersion: `1.8.0`\n" ) self.assertIn("## Highlights", preview) self.assertIn("- Improved rollback", preview) self.assertNotIn("Version:", preview) self.assertNotIn("Launcher 1.8.0", preview) def test_release_notes_preview_is_bounded(self) -> None: preview = release_notes_preview( "\n".join(f"- Change {index}" for index in range(30)) ) self.assertIn("- Change 0", preview) self.assertNotIn("- Change 20", preview) self.assertTrue(preview.endswith("…")) def test_current_version_heading_uses_running_launcher(self) -> None: self.assertEqual( update_version_heading( "0.9.11", "0.9.10", "stable", update_available=False, ), "Current version: 0.9.11\nLatest Stable release: 0.9.10", ) def test_history_distinguishes_running_and_installed_versions(self) -> None: self.assertEqual( release_history_state( "active", is_running=True, local_active=False, local_retained=False, is_older=False, ), "Current", ) self.assertEqual( release_history_state( "active", is_running=False, local_active=True, local_retained=True, is_older=False, ), "Installed", ) if __name__ == "__main__": unittest.main()