JSFiddle - React, Tailwind, and code Playground

by Gajus Kuizinas

JavaScript

'use strict';

let chai = require('chai'),
    expect = chai.expect,
    chaiAsPromised = require('chai-as-promised'),
    mysql = require('../src/main.js');

chai.use(chaiAsPromised);

describe('mysql.connect()', () => {
    it('it connects to the database', () => {
        return mysql.connect({
            host: process.env.MYSQL_HOST,
            user: process.env.MYSQL_USER,
            password: process.env.MYSQL_PASSWORD,
            database: process.env.MYSQL_DATABASE
        });
    });
    describe('if connection cannot be established', () => {
        it('throws an error', () => {
            let connection;

            connection = mysql.connect({
                host: 'INVALID_HOST'
            });

            return expect(connection).to.rejectedWith(Error, 'Error: getaddrinfo ENOTFOUND INVALID_HOST INVALID_HOST:3306');
        });
    });
});

describe('connection.query()', () => {
    let connection;

    beforeEach(() => {
        return mysql
            .connect({
                host: process.env.MYSQL_HOST,
                user: process.env.MYSQL_USER,
                password: process.env.MYSQL_PASSWORD,
                database: process.env.MYSQL_DATABASE
            })
            .then((db) => {
                connection = db;
            })
    });

    it('makes a query and return results', () => {
        let rows = connection.query('SELECT 1');

        expect(rows).to.eventually.deep.equal([{'1': 1}]);
    });

    describe('if query cannot be made', () => {
        it('throws an error', () => {
            let query;

            query = connection.query('INVALID_QUERY');

            return expect(query).to.rejectedWith(Error, 'Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'INVALID_QUERY\'');
        });
    });
});