Month 32 — Thanks to TDD, very calm move to production of my NodeJS project
It has been 4 months since I posted my last monthly update. Initially, I was busy with moving to production on a Node JS-based integration project that integrates between SAP ERP and the FreshService ticketing system. This project runs on a serverless platform Autocode which allows us to run NodeJS code and exposes a HTTP-based API for the SAP system to send notifications to FreshService system to create and update tickets. I have used Jest to write test-cases and used TDD from the beginning of the project to ensure that every line of code is covered by a test-case. Moving from pytest to Jest was a bit challenging initially — but once I got the hang of it, I loved Jest — yes, it was really delightful testing. But the real test of the Test safety-net was to see how the production move would go.
Every production move comes with its own challenges — This is the first time I am working on a NodeJS project. So, I expected some unknown issues to pop up during the move from UAT to production.
Unexpected issues did pop up — but they had nothing to do with the features that I have coded. But an SSL certificate mismatch issue sent us in circles between the different services/systems we were using and took a lot of time and anguished mental effort to resolve.
But the issues that I expected to pop up — unexpected bugs, timeouts due to volume of load, system crashes, etc. did not pop up at all. The production move was so smooth and the system has been running in production for about 3 months now without any glitch.
As I look back, I am filled with a wonderful feeling of how calm and easy the production move was — all I needed to change was a config file to point to a different URL and to provide the credentials — then I ran the Jest test cases and voila — all green ticks indicating everything went well.
What is so great about the full safety-net of tests was that I would get to know the bugs first before a real user sees them. Given that this project was quite experimental in nature with a lot of new technologies tied up together to integrate these 2 systems, this safety-net was very valuable.
Now, I have come a full circle with the JS side of technologies from client side to serverside. On the python side, I have done the same using my personal projects. On the JS side, it has been my client projects which gave me this wonderful opportunity.
What I am yet to do is to get deep into one of the JS client framework — React or Vue. I hope to get into React as it would be covered in my Scaler course, which has been keeping me quite busy…