We started implementing the BigTest server mostly as a proof of concept for the architectural discussions and to validate or invalidate assumptions. However, it now looks like this implementation will proceed to become the product, and so we need to figure out a way to test it.
With so many moving asynchronous parts, it's agreed that we want to try and make the test as high level or "Big" as we can (it's only fitting for the BigTest server after all). For example, we may want to start a bigtest server and then send real http requests to it and make sure that we get certain responses.
A non-exhaustive list of unknowns:
What components are tests allowed to interact with besides the command server, if any?
How do we test error conditions?
How do we simulate (or leverage) systems that exist outside of the bigtest server like the application under test, or a browser.
Since you're more familiar with good practices around how these tests should be written in Node, I think it would be good for you to take a stab at this?
We started implementing the BigTest server mostly as a proof of concept for the architectural discussions and to validate or invalidate assumptions. However, it now looks like this implementation will proceed to become the product, and so we need to figure out a way to test it.
With so many moving asynchronous parts, it's agreed that we want to try and make the test as high level or "Big" as we can (it's only fitting for the BigTest server after all). For example, we may want to start a bigtest server and then send real http requests to it and make sure that we get certain responses.
A non-exhaustive list of unknowns: