This is still in progress but I’m working on using Quixe for testing Inform 6 games and libraries. node.js testing frameworks are quite advanced, don’t depend on upstream library version so transcript comparison won’t fail on different systems just from a version mismatch and there’s nothing to build after installing dependencies.
I’m having two problems, though. Problem 1 is that Quixe is not a node.js library, it’s packaged as an old dirty hack using the global object as a pseudo-browser tab. So when one game ends, Quixe still sees a closed Glk VM and refuses to run another.
Problem 2 is the API: output_callback and input_callback run only on the direct output, so they can’t detect text in the room changes.
Still, it’s already useful for short responses. Sample that works:
Quixe isn’t a node library, but I had to make it work with node libraries for Lectrote. The current init code should allow you to create a new Quixe object (call new QuixeClass()) with a new Glk interface and run that from scratch.
(Quixe plus GlkAPI plus a headless testing layer should work the same as a C interpreter plus RemGlk. Just in JS rather than C.)