wellsjo / JSON-Splora

GUI app for editing, visualizing, and manipulating JSON data
MIT License
1.86k stars 60 forks source link

Add Testing Framework #57

Closed vpillinger closed 7 years ago

vpillinger commented 7 years ago

I have added Jasmine and Spectron to the project. Jasmine tests will be automatically ran as a pre-git commit hook. I am contemplating setting up a gulp watch() for continuous test and lint integration (although most ide will lint automatically already).

Edit: Another consideration, I left /spec/**_spec.js as the glob to find tests. However, it might be easier/more maintainable/ect. to put _spec.js files in a directory closer to the files being tested. For example, putting them in the same directory, or a sub directory. Any preferences/thoughts?

51

wellsjo commented 7 years ago

I don't know much about this testing framework, so no initial preferences here.

vpillinger commented 7 years ago

Thanks for the feedback. I decided that it is probably best to leave continuous integration on tests to the IDE. Most have libraries that will accomplish it, and we don't need either to integrate our tests with the build/commit. As for the other thing, I like to put unit tests in the same directory as the code (or one below it in a tests\ or specs\ directory). Mainly because moving files around will break tests to a much lesser extent than if the whole project structure was copied a second time. I am going to also change this when I fix the other issue.

wellsjo commented 7 years ago

One last comment, then could you squash your commits?

vpillinger commented 7 years ago

There you go, I squashed this down to just 2 commits. I never really squashed commits before, but I will try to make it a habit in the future to cut down on clutter.

wellsjo commented 7 years ago

I disabled the tests for now and am reviewing them. To get them to work correctly, some light refactoring is required. Going to take a stab at it this morning...

wellsjo commented 7 years ago

Okay I took a stab at properly implementing the proxies. I ran into a weird issue requiring CodeMirror at the module level and stubbing it. I'm going to open another bug ticket for that. Merging this for now 😄