github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/blockapps-ba-master/tests/v1/login.test.js (about)

     1  const chai = require('chai');
     2  const chaiHttp = require('chai-http');
     3  const server = require('../../server');
     4  const ba = require('blockapps-rest');
     5  const common = ba.common;
     6  const should = common.should;
     7  const assert = common.assert;
     8  const expect = common.expect;
     9  const config = common.config;
    10  const rest = ba.rest;
    11  const UserRole = rest.getEnums(`${config.libPath}/user/contracts/UserRole.sol`).UserRole;
    12  
    13  chai.use(chaiHttp);
    14  
    15  describe("Login Test", function(){
    16    const username = "Supplier1";
    17    const password = "1234";
    18  
    19    it('should fail to login with wrong password', function(done) {
    20      this.timeout(config.timeout);
    21      chai.request(server)
    22        .post('/api/v1/login')
    23        .send({
    24          username: username ,
    25          password: password + 'x',
    26        })
    27        .end((err, res) => {
    28          assert.equal(res.statusCode, 401, 'Login should fail');
    29          done();
    30        });
    31    });
    32  
    33    it('should fail to login with wrong username', function(done) {
    34      this.timeout(config.timeout);
    35      chai.request(server)
    36        .post('/api/v1/login')
    37        .send({
    38          username: username + 'x',
    39          password: password ,
    40        })
    41        .end((err, res) => {
    42          assert.equal(res.statusCode, 401, 'Login should fail');
    43          done();
    44        });
    45    });
    46  
    47    it('should log the user in', function(done) {
    48      this.timeout(config.timeout);
    49      chai.request(server)
    50        .post('/api/v1/login')
    51        .send({
    52          username: username,
    53          password: password,
    54        })
    55        .end((err, res) => {
    56          const data = assert.apiData(err, res);
    57          const authenticate = data.authenticate;
    58          const user = data.user;
    59  
    60          assert.isOk(authenticate, 'Should be authenticated');
    61          assert.equal(user.username, username, 'Username should be ' + username);
    62          assert.equal(parseInt(user.role), UserRole.SUPPLIER, 'Role should be Supplier');
    63          done();
    64        });
    65    });
    66  });