However, when it came to testing my logarithm functions, the supported methods didn’t totally fit my case. Specifically, I wanted to use to test that a log(0) equals to negative infinity. Having already used similar methods of the library, such as toBeNaN(), I was expecting that a similar method (i.e. toBeNegativeInfinity() ) would also exist.
Nonetheless, it didn’t and of course one could easily argue “why not working around it, like toEqual(-Infinity) ?”, but then, what is the point of having methods like toBeNaN()? We could also work around this with toBeEqual(NaN).
So, I decided to extend it a bit, because I didn’t want to wait math.js already had a dependency on jasmine-node package, so, I had to provide my own (extended) version of jasmine-node. How could I do this?
- Fork jasmine-node
- Clone the forked repo locally
- Extend the library to my liking
- Distribute a new npm package out of the extended library (1)
- Replace jasmine-node dependency with jasmine-node-xt (2)
- Use the desired method as initially
(0) : Following the concept of also extending the library I used, instead of just providing a PR and wait whether it will be accepted or not, I saved time from something that might never happen in the future from my side; on the other hand, I gained knowledge on an area I am not so experienced, so, even if the submitted PR is not gonna be accepted, I learned something new!
(1) : Required changes in package.json; here you also have to keep in mind the provided license from the original library – it might affect the way you wanna distribute your extended version of that library
(2) : First uninstall jasmine-node : npm uninstall –save-dev jasmine-node and then install our version: npm install –save-dev jasmine-node-xt