OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-wallet / deprecated / experiments / test-pear-simple.cjs

39 lines · javascript ref:
#!/usr/bin/env bare
require('bare-node-runtime/global')
require('bare-node-runtime/imports')

const http = require('bare-http1')

console.log('🍐 Testing Pear HTTP server binding...')

const server = http.createServer((req, res) => {
  res.end('Hello from Pear!')
})

server.on('error', (err) => {
  console.log('❌ Server error:', err)
  Pear.exit(1)
})

const PORT = Pear.config.args[0] || 3007

server.listen(PORT, 'localhost', () => {
  console.log('✅ Listen callback fired')
  console.log('   server.listening:', server.listening)
  console.log('   server._error:', server._error)  
  console.log('   server.address():', server.address())
  console.log('\n🔍 Testing if port is ACTUALLY bound...')
  
  setTimeout(() => {
    const testReq = http.request({ host: 'localhost', port: PORT }, (res) => {
      console.log('✅ SUCCESS - Port IS bound!')
      Pear.exit(0)
    })
    testReq.on('error', (err) => {
      console.log('❌ FAIL - Port NOT bound:', err.message)
      Pear.exit(1)
    })
    testReq.end()
  }, 500)
})