-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Add unit tests to project #780
base: master
Are you sure you want to change the base?
Conversation
We will use Intern as a testing framework because it seamlessly integrates with chai for running tests, as well as vast testing capabilities and onboard TypeScript support. The sample.js contains a simple test that should integrate with TravisCI and will be deleted when tests are implemented.
Whoops, I forgot to add the object descriptor..
This completes the basic setup and makes it possible to: - run tests using the intern testrunner (npm test) - mock dependencies using testdouble Note: Electron can't be mocked by td itself, so providing a manual mock is needed. This should be modularized in the future.
0af00b4
to
40621cf
Compare
Hi, I just wanted to say thank you for your work on this! Is this good for me to do a full review yet, or are you still working on it? I have taken a glance, but not a thorough review. |
You can take a review if you want. The basic setup is complete, so all that's left to add are the actual tests. A review on the structure or syntax you prefer would actually help me out a lot as well since I can keep it in line with the rest of the project. |
Hi @curtisy1 wanted to check in on the status of this PR? :) |
3f2ddfb
to
6b32139
Compare
c614180
to
f09f454
Compare
This is a work in progress proposed fix to #19. I'll gradually add more tests but the foundation is there for now. As a quick overview of what I decided on using and how this all works, here's a small writeup:
The testing framework used is Intern. This allows using chai asserts which are easier to read in my opinion. As well as a close to zero configuration setup which lets us focus on writing tests instead of configuring things that aren't really necessary.
Furthermore, because we can't use electron or node_modules directly. We rely on testdouble which allows us to mock external dependencies by either: