NaturalIntelligence/Stubmatic

View on GitHub
functional-tests/queryparam_spec.js

Summary

Maintainability
A
0 mins
Test Coverage
if (!global.Promise) {
  global.Promise = require('q');
}

var chai = require('chai')
  , chaiHttp = require('chai-http');

var rewire = require('rewire'),
   cli = rewire(".././index").__get__("cli");

 chai.use(chaiHttp);

try{
    cli(["node", "stubmatic", "-d","functional-tests/assets"/*, "-v"*/]);
}catch(err){
    console.log("Server is already started");
}

describe('FT', function () {

    it('should response when matching query param and URL is found', function (done) {
        chai.request("http://localhost:9999")
            .get('/stubs/query')
            .query({id: 123, name: "amit", extra : "extra"})
            .then(res => {
                expect(res.status).toBe(200);
                expect(res.text).toBe("with 2 query params. 123, mit");
                done();
            }).catch( err => {
                done.fail(err.message);
            });
    });

    it('should response when wrong query param value is passed', function (done) {
        chai.request("http://localhost:9999")
            .get('/stubs/query')
            .query({id: "123a", name: "amit"})
            .then(res => {
                expect(res.status).toBe(404);
                done();
            }).catch( err => {
                done.fail(err.message);
            });
    });

    it('should response when multiple mixed query param are passed', function (done) {
        chai.request("http://localhost:9999")
            .get('/stubs/query')
            .query({static: "amit", reg: "guptacust1", multireg : "aamit1"})
            .then(res => {
                expect(res.status).toBe(200);
                expect(res.text).toBe("N/A|cust|amit1|amit|1|{{query[5] }}");
                done();
            }).catch( err => {
                done.fail(err.message);
            });
    });
});