[Request] Automated tests?
hurrymaplelad opened this issue · 2 comments
Building on #135, automating the example_encrypted.html
flow would help me contribute faster.
Starting with an issue rather than I PR 'cause I noticed and appreciate that this package currently has very few dependencies. We'd need to add a dev dependency on something like puppeteer
to set this up.
Concerns? Safe to assume we'd prefer Node's baked-in test harness vs something like Jest?
Yes! Agreed having automated tests would be great for smoothing out contributing.
I like that the package has very little dependencies as well - less things to break and maintain, and the code being easily fully auditable is sort of a feature for a security-related library. I was thinking we could even parse the cli arguments manually and implement the encryption with webcrypto in node so there would be zero external dependency.
But adding a dependency for tests really makes sense, especially since it's a dev dependency.
Regarding puppeteer I'm a bit concerned that it downloads a full chromium version, that feels pretty heavy to me. I'd think testing the encryption/decryption logic with the refactoring you did in your later PRs would be a step in the right direction, we could check the generated example_encrypted.html
files are as expected, and only changes to password_template.html
and index.html
would need to be manually tested. Hopefully with the refactoring these files can become quite light and rarely change. Do you feel that would help your workflow?
Node's test harness looks quite nice but is marked as "Experimental" still and I'd value using something really stable so that the package can be untouched for a while and picking up development can still be very easy. So I personally wouldn't have any issue with using Jest or another well known lib.
For the record - rereading this, my objections to pupeeter don't make that much sense to me now (the low number of dependencies mostly matter for dependencies
but it would be in devDependencies
, could run in CI) and I think it could be a fine choice. 👍