diff --git a/lib/nodejs/test/episodic-code-generation-test/client.js b/lib/nodejs/test/episodic-code-generation-test/client.js
index 55dc702..631bfe7 100644
--- a/lib/nodejs/test/episodic-code-generation-test/client.js
+++ b/lib/nodejs/test/episodic-code-generation-test/client.js
@@ -37,21 +37,21 @@
 
 const options = {
   transport: thrift.TBufferedTransport,
-  protocol: thrift.TJSONProtocol
+  protocol: thrift.TJSONProtocol,
 };
 
 const connection = thrift.createConnection(host, port, options);
-const testDriver = function(client, callback) {
-  test("NodeJS episodic compilation client-server test", function(assert) {
+const testDriver = function (client, callback) {
+  test("NodeJS episodic compilation client-server test", function (assert) {
     const type1Object = new Types.Type1();
     type1Object.number = 42;
     type1Object.message = "The answer";
-    client.testEpisode(type1Object, function(err, response) {
+    client.testEpisode(type1Object, function (err, response) {
       assert.error(err, "no callback error");
       assert.equal(response.number, type1Object.number + 1);
       assert.equal(
         response.message,
-        type1Object.message + " [Hello from the server]"
+        type1Object.message + " [Hello from the server]",
       );
       assert.end();
       callback("Server successfully tested");
@@ -59,7 +59,7 @@
   });
 };
 
-connection.on("error", function(err) {
+connection.on("error", function (err) {
   assert(false, err);
 });
 
@@ -68,10 +68,10 @@
 runTests();
 
 function runTests() {
-  testDriver(client, function(status) {
+  testDriver(client, function (status) {
     console.log(status);
     connection.destroy();
   });
 }
 
-exports.expressoTest = function() {};
+exports.expressoTest = function () {};
diff --git a/lib/nodejs/test/episodic-code-generation-test/server.js b/lib/nodejs/test/episodic-code-generation-test/server.js
index 2917b68..feca380 100644
--- a/lib/nodejs/test/episodic-code-generation-test/server.js
+++ b/lib/nodejs/test/episodic-code-generation-test/server.js
@@ -33,17 +33,17 @@
 
 const options = {
   transport: thrift.TBufferedTransport,
-  protocol: thrift.TJSONProtocol
+  protocol: thrift.TJSONProtocol,
 };
 
 const ServiceHandler = {
-  testEpisode: function(receivedType1Object) {
+  testEpisode: function (receivedType1Object) {
     const type1Object = new Types.Type1();
     type1Object.number = receivedType1Object.number + 1;
     type1Object.message =
       receivedType1Object.message + " [Hello from the server]";
     return type1Object;
-  }
+  },
 };
 
 const server = thrift.createServer(Service, ServiceHandler, options);
