NodeJS Tests with microservices, Jenkins and Docker


Hi, this is my journey trying to add tests for a microservice architectured built with nodejs. I would need to use Jenkins and Docker.

This article is a dev log starting from nowhere (is not totally true, but I would like to make it sounds worst than in reality). I have an microservice architecture which connects its services through RabbitMQ, message broker and redis in place. So running integration tests, I need an environment capable of this.

I don’t know which is the right approach, but time will be my fellow.

I read few things trying to setup the testing environment:

  • https://dev.to/mrfrontend/how-to-mock-an-api-with-random-data-from-nodejs-dda
  • https://scotch.io/tutorials/nodejs-tests-mocking-http-requests
  • https://codersociety.com/blog/articles/contract-testing-pact
  • https://martinfowler.com/articles/microservice-testing/
  • https://hackernoon.com/set-up-jenkins-ci-in-docker-container-and-run-your-tests-inside-their-own-container-a-how-to-guide-7h8u32yi

The default test file, to check that mocha, chai, nuxt and axios works as expected is this:

import nock from 'nock'
import { describe, it } from 'mocha'
import { expect } from 'chai'
import axios from 'axios'

describe('Initial test', function () {
  it('should be equals with 2', function () {
    expect(1 + 1).equals(2)
  })
})

describe('Test Nock', function () {
  const baseUrl = 'https://example.com/'

  it('should use nock for request', async function () {
    const expectedResponse = { hello: 'world' }
    nock(baseUrl).get('/').reply(200, expectedResponse)

    const response = await axios(baseUrl, {
      method: 'GET',
      url: '/'
    })

    expect(response.status).to.be.equals(200)
    expect(response.data).to.be.deep.equals(expectedResponse)
  })
})

Newsletter


Related Posts

What is my Internet IP Address?

Discover your IP address over the internet

Validate Romanian CNP

How to validate the Romanian CNP with a JS function

Validating CIF for Romanian Company in JS

Validate CIF for Romanian companies in JS. Easily verify company information with our user-friendly tool. Ensure accuracy and reliability.

How to install Kali Linux in UTM Virtual Machine on M2 Macbook

How I installed a UTM virtual machine with Kali Linux on a Macbook PRO M2 chip

My cat ruin my SaaS LoyalXpert

After half year, LoyalXpert, the loyalty system builder for coffee shop oweners is shutdown

TikTok Ads Strategy from a SaaS founder

Here's a short tutorial from my disrupting strategy of doing Tiktok Ads as a SaaS Founder

Curated SEO Resources: Essential Tools and Tips

Discover a handpicked selection of indispensable SEO resources, including tools and tips, to optimize your website's performance.

A Week in the Life of an Invoice Wrangler: Navigating Ridesharing and Food Delivery Chaos

As an app founder in the ridesharing and food delivery industry, I found myself knee-deep in invoice reports from companies like Bolt, Uber, Glovo, and Bolt Food

Free HTML templates list for Startups

Free HTML templates list for startup. A complete list with free resources to build your next startup's website and gain the traction to the sky.

Deal with client requests in SaaS

How to deal with client requests in Saas which are seeing only their interests, not the product interest.