import unittest

from pump_scanner import score_coin


class PumpScannerTests(unittest.TestCase):
    def test_flags_missing_socials_and_low_liquidity(self):
        coin = {"name": "Test", "symbol": "TST", "mint": "mint", "market_cap": 5000, "usd_market_cap": 5000, "twitter": None, "telegram": None, "website": None, "reply_count": 0, "created_timestamp": 1}
        result = score_coin(coin)
        self.assertIn("no social links", result["risk_flags"])
        self.assertIn("very small market cap", result["risk_flags"])
        self.assertLess(result["attention_score"], 50)

    def test_scores_social_activity_and_returns_contract_identity(self):
        coin = {"name": "Test", "symbol": "TST", "mint": "mint", "market_cap": 100000, "usd_market_cap": 100000, "twitter": "https://x.com/test", "telegram": "https://t.me/test", "website": "https://test.example", "reply_count": 100, "created_timestamp": 1}
        result = score_coin(coin)
        self.assertEqual(result["mint"], "mint")
        self.assertGreaterEqual(result["attention_score"], 50)
        self.assertEqual(result["social_links"]["twitter"], "https://x.com/test")


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