Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/partner-manager-backend/test/
Upload File :
Current File : //home/deltalab/PMS/partner-manager-backend/test/auth.test.js

/**
 * This is a simple test example.
 * 
 * You can use this as a template for other examples
 */

// DEPENDENCIES ====================================
const { expect, assert } = require('chai');
const { dotenv } = require('dotenv').config();
const mongoose = require('mongoose');

// RESOURCES =======================================
const { checkLogin } = require('../services/auth');
const { userModel } = require('../models/mongoose/user');

// TEST CASES ======================================

let userId;
describe('auth', () => {

  // Initialization --------------------------------
  before((done) => {
    mongoose.connect(process.env.database_url);
    const db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error'));
    db.once('open', function () {
      console.log('We are connected to test database!');
      done();
    });
  });

  class NameClass {
    constructor(nameObject) {
      if (nameObject) {
        this.name = nameObject.name;
      }
    }
    name = 'String';
  }

  class FullNameClass extends NameClass {
    constructor(nameObject) {
      super(nameObject);
    }
    surname = 'String';
  }

  it('classTest', (done) => {
    const nameObject = new NameClass();
    nameObject.name = "my name";
    const fullnameObject = new FullNameClass(nameObject);
    fullnameObject.surname = "my surname";
    console.log(fullnameObject);
    done();
  });

  it('userCreation', (done) => {
    // create a new random user to be used for these tests
    const newUser = new userModel();
    newUser.username = "test" + Date.now();
    newUser.password = "password" + Date.now();
    newUser.partnerId = "6180ef44876a9e71e53f3563";
    newUser.email = "test@test.it";
    console.log("saving new user...");
    // persiste user in database
    newUser.save()
      .then((user) => {
        console.log("user created " + user._id);
        userId = user._id;
        // look for a user with the given id
        userModel.findById(userId, (err, dbuser) => {
          if (err) {
            console.log(err);
            throw new Error(err);
          }
          // compare the database user with the usermodel created
          console.log(dbuser);
          assert(dbuser, 'No matching user found for id ' + userId);
          expect(dbuser.username).to.eq(newUser.username);
          done();
        });
      })
      .catch(done);
  });

  it('userDelete', (done) => {
    assert(userId, 'no userid specified: run userCreation before');
    console.log("deleting user " + userId);
    userModel.deleteOne({ _id: mongoose.Types.ObjectId(userId) })
      .then((user) => {
        console.log("delete one");
        console.log(user);
        done();
      })
      .catch(done);
  });

  it('checkLogin', () => {
    console.log("checking login the easy way");
    //TODO: use auth service
  });
});