Skip to content
Snippets Groups Projects
persondao.test.js 1.7 KiB
Newer Older
nilstes's avatar
nilstes committed
var mysql = require("mysql");

nilstes's avatar
nilstes committed
const PersonDao = require("./persondao.js");
const runsqlfile = require("./runsqlfile.js");

nilstes's avatar
nilstes committed
// GitLab CI Pool
nilstes's avatar
nilstes committed
var pool = mysql.createPool({
nilstes's avatar
nilstes committed
  connectionLimit: 1,
nilstes's avatar
nilstes committed
  host: "mysql",
  user: "root",
  password: "secret",
nilstes's avatar
nilstes committed
  database: "supertestdb",
nilstes's avatar
nilstes committed
  debug: false,
  multipleStatements: true
nilstes's avatar
nilstes committed
});

nilstes's avatar
nilstes committed
let personDao = new PersonDao(pool);

beforeAll(done => {
  runsqlfile("dao/create_tables.sql", pool, () => {
    runsqlfile("dao/create_testdata.sql", pool, done);
  });
});

nilstes's avatar
nilstes committed
afterAll(() => {
  pool.end();
});

nilstes's avatar
nilstes committed
test("get one person from db", done => {
  function callback(status, data) {
nilstes's avatar
nilstes committed
    console.log(
      "Test callback: status=" + status + ", data=" + JSON.stringify(data)
    );
    expect(data.length).toBe(1);
nilstes's avatar
nilstes committed
    expect(data[0].navn).toBe("Hei Sveisen");
nilstes's avatar
nilstes committed
    done();
  }

nilstes's avatar
nilstes committed
  personDao.getOne(1, callback);
});

nilstes's avatar
nilstes committed
test("get unknown person from db", done => {
  function callback(status, data) {
    console.log(
      "Test callback: status=" + status + ", data=" + JSON.stringify(data)
    );
    expect(data.length).toBe(0);
    done();
  }

  personDao.getOne(0, callback);
});

nilstes's avatar
nilstes committed
test("add person to db", done => {
nilstes's avatar
nilstes committed
  function callback(status, data) {
    console.log(
      "Test callback: status=" + status + ", data=" + JSON.stringify(data)
    );
    expect(data.affectedRows).toBeGreaterThanOrEqual(1);
    done();
  }

  personDao.createOne(
    { navn: "Nils Nilsen", alder: 34, adresse: "Gata 3" },
    callback
  );
});

nilstes's avatar
nilstes committed
test("get all persons from db", done => {
  function callback(status, data) {
nilstes's avatar
nilstes committed
    console.log(
      "Test callback: status=" + status + ", data.length=" + data.length
    );
    expect(data.length).toBeGreaterThanOrEqual(2);
nilstes's avatar
nilstes committed
    done();
  }

  personDao.getAll(callback);
});