We’re going to test a web api using GET, POST using chai-http by actual http request.

chai is not a test runner, it’s just a javascript testing framework (aka. asserter). If you are looking for a test runner go see mocha

Note: You should install mocha globally (npm install -g mocha) and install chai locally.

To get started, install chai and chai-http:

npm install --save-dev chai chai-http

You should have your destination web server in place because I will show only the test part, here it is:

const chai = require('chai')
const chaiHttp = require('chai-http')

describe('web server test', () => {
    it('test post request with file upload', (done) => {
            .attach('image_field', img, 'upload.png')
            .end((err, res) => {
                if (err) {
                } else {
                    const body = res.text

To not underestimate my reader’s ability, I feel like there is no need to explain it in details. There is so much more to discover, yet beginning from reading body response from the request, I think, is a good start !