Skip to content
Snippets Groups Projects
Select Git revision
  • 644e6047c6ba755bfa854507ff360868c6a7ae92
  • master default
2 results

persondao.test.js

Blame
  • Forked from Nils Tesdal / DatabaseTest
    Source project has a limited visibility.
    persondao.test.js 2.32 KiB
    var mysql = require("mysql");
    
    const PersonDao = require("./persondao.js");
    const runsqlfile = require("./runsqlfile.js");
    
    // GitLab CI Pool
    var pool = mysql.createPool({
      connectionLimit: 1,
      host: "mysql",
      user: "root",
      password: "secret",
      database: "supertestdb",
      debug: false,
      multipleStatements: true
    });
    
    let personDao = new PersonDao(pool);
    
    beforeAll(done => {
      runsqlfile("dao/create_tables.sql", pool, () => {
        runsqlfile("dao/create_testdata.sql", pool, done);
      });
    });
    
    afterAll(() =>{
      pool.end();
    });
    
    test("get one person from db", done => {
      function callback(status, data) {
        console.log(
          "Test callback: status=" + status + ", data=" + JSON.stringify(data)
        );
        expect(data.length).toBe(1);
        expect(data[0].navn).toBe("Hei Sveisen");
        done();
      }
    
      personDao.getOne(1, callback);
    });
    
    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);
    });
    
    test("add person to db", done => {
      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
      );
    });
    
    test("get all persons from db", done => {
      function callback(status, data) {
        console.log(
          "Test callback: status=" + status + ", data.length=" + data.length
        );
        expect(data.length).toBeGreaterThanOrEqual(2);
        done();
      }
    
      personDao.getAll(callback);
    });
    
    test("delete person from db", done => {
      function callback(status, data) {
        console.log(
          "Test callback: status=" + status + ", data.length=" + data.length
        );
        expect(data.affectedRows).toBeGreaterThanOrEqual(1);
        done();
      }
    
      personDao.deleteOne({id: 1}, callback);
    });
    
    test("update person in db", done => {
      function callback(status, data){
        console.log(
          "Test callback: status=" + status + ", data=" + JSON.stringify(data)
        );
        expect(data[0].navn).toBe("Kåre Heia");
        done();
      }
    
      personDao.updateOne(
        {navn: "Kåre Heia", alder: 100, adresse: "Apalveien 11"}, 0, callback
      );
    })