test-phone.js 1.91 KB
/**
 * test-phone.js — 在手机上验证微信发送和跟踪功能
 *
 * 运行方式:
 *   cd /data/data/com.termux/files/home/hermes-wechat
 *   node test-phone.js
 */

const { sendTextMessage, sendTextMessageBroadcast, queryStatus } = require('./android-wechat-sender');
const { AndroidWechatTracker } = require('./android-wechat-tracker');

const TARGET = process.argv[2] || 'filehelper';
const CONTENT = process.argv[3] || `hermes phone test ${new Date().toLocaleTimeString()}`;

async function run() {
  console.log('=== WeChat Phone Test ===');
  console.log(`Target: ${TARGET}`);
  console.log(`Content: ${CONTENT}`);
  console.log('');

  // 1. 查询状态
  console.log('[1] Querying status...');
  const status = await queryStatus();
  console.log('    Status:', status);
  console.log('');

  // 2. 发送消息(广播方式,更可靠)
  console.log('[2] Sending via broadcast...');
  const result = await sendTextMessageBroadcast(TARGET, CONTENT);
  console.log('    Result:', result);
  console.log('');

  // 3. 等待并跟踪消息
  console.log('[3] Tracking messages for 10 seconds...');
  const tracker = new AndroidWechatTracker();
  let received = false;

  tracker.on('message', msg => {
    if (msg.content.includes(CONTENT.substring(0, 10))) {
      console.log('    ✓ Captured our message:', msg);
      received = true;
    }
  });

  tracker.on('sendResult', r => {
    console.log('    Send result:', r);
  });

  tracker.startPolling(1000);

  await new Promise(r => setTimeout(r, 10000));
  tracker.stopPolling();

  console.log('');
  if (received) {
    console.log('✅ Test PASSED — message sent and tracked successfully');
  } else {
    console.log('⚠️  Test INCONCLUSIVE — message may have sent but not captured in logs');
    console.log('    Check: su -c "logcat -s HermesWX:D | grep MSG"');
  }
}

run().catch(e => {
  console.error('❌ Test FAILED:', e.message);
  process.exit(1);
});