How to cover Snowflake connection error in mocha test nodejs

36 Views Asked by At

I have written a code to get data from SnowFlake using NodeJS (Lambda). Now I am working to cover the code with Mocha test - this is the part I am new at.

I have been able to cover the SUCCESS case. But for ERROR case I am unable to proceed. Below is a code for the handler method that I want to cover:

const handler = () => new Promise((resolve, reject) => {
  const connection = snowflake.createConnection({
    account: //snowflakeAccount
    username: //snowflakeUserName
    password: //snowflakePassword
    warehouse: //snowflakeWarehouset
    application://snowflakeApp
  });
  const response = getDefaultResponse();
  connection.connect((err, conn) => {
  if (err) {
    response.statusCode = 400;
    response.body = JSON.stringify({ err });
    console.log('ERROR', response);
    resolve(response);
  }
  else {
    const res = getSnowflakeDealers(connection); 
    response.statusCode = res.statusCode;
    //response.body = JSON.stringify(res.message);
    resolve(response);
  }
});
});

Code for Test case by me so far for error case [But it fails]:

describe("Test /riskDetails failure response", () => {
    before(done => {
        sinon.stub(snowFlakeClient, 'createConnection')
            .callsFake((err) => {
                return {
                    connect: (cb) => {
                    cb()
                },
                execute: () => {
                }
            };
        });
    done();
});
it.only("should return a response with statusCode 400", (done) => {
    updateDealerRiskHandler.handler()
        .then((response) => {
            console.log('FAIL TEST', response);
            expect(response.statusCode).to.equal(400);
            done();
        })
        .catch((err) => {
            done(err);
        });
});
after(() => {
    sinon.restore();
});
});
0

There are 0 best solutions below