unit test for node project (teams for education)
How to use the Input field for unit tests for node projects in Teams for Education? The online documentation doesn't use it. Is that because it is not implemented?
P.S. I would like to link to my Teams For Education example but I can't so I used change-calculator-CLI which is similar but not identical.
Another alternative is to enter a representation of ^D on a separate line of the input value. This doesn't work as I have tried an HTML character code and ^D. I need Replit staff to say if there is a way to do this.
I've done some research and I think the answer may lie within the jest testing support for mocks. I would need to mock stdin since that's how I get simple input:
I would need help from Replit staff to see how to fit the mock into their use of jest. Here are a couple of articles on jest mocking:
Inside of node, you can do something like:
and refer to whateverToPrompt later to get the answer they put.
What you're suggesting is similar to the what I have in change-calculator-CLI project above. Reading from the tty is impossible in the unit test that I created for above.
Note that my question is specifically for unit test for Teams for Education projects where I am able to provide an input value for each test. Even this doesn't seem to work at all.
You ever figure this out? You're using unit tests and not the input/output test they have for education correct?
I was using the education input/output tests but trying to input 2 variables and just can't get that working. I've since been experimenting with unit tests and jest but haven't been able to handle prompt().
I've asked about the same thing a couple weeks ago here (https://community.replit.com/t/multiple-input-output-in-node-js/167). I'm also using Teams for Education.
Currently I use functions with inputs to run my unit tests, and have students enter values on the code side for variables that are sent to the the function. It would be ideal to allow the prompt() twice for the student instead. Currently it times out as you have said.
If you drum up a work around at any point, I'd love to hear about it. I'm still experimenting when I find time each week with a solution. I'm just not that skilled at Jest at this time.