Is there a reason for Javascript Specifically? My team has recently been using https://renode.io/ for this kind of task and it's working exceptionally well. Though they don't yet support ESP32, depending on your needs/goals working with them to get ESP32 support may be the most effective path.