Skip to content

Commit

Permalink
feat(test): testing user details
Browse files Browse the repository at this point in the history
  • Loading branch information
serge1peshcoff committed Feb 6, 2020
1 parent 1922540 commit da1fbd4
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 3 deletions.
6 changes: 3 additions & 3 deletions middlewares/generic.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const {
Circle,
AccessToken
} = require('../models');

const { Sequelize } = require('../lib/sequelize');
const packageInfo = require('../package');

exports.maybeAuthorize = async (req, res, next) => {
Expand Down Expand Up @@ -65,7 +65,7 @@ exports.fetchUser = async (req, res, next) => {
}

// searching the user by url
let where = { url: req.params.user_id };
let where = { username: { [Sequelize.Op.iLike]: req.params.user_id } };

// searching the user by id if it's numeric
if (helpers.isNumber(req.params.user_id)) {
Expand All @@ -74,7 +74,7 @@ exports.fetchUser = async (req, res, next) => {

const user = await User.findOne({ where });
if (!user) {
return errors.makeNotFoundError(req, 'User is not found.');
return errors.makeNotFoundError(res, 'User is not found.');
}

req.currentUser = user;
Expand Down
85 changes: 85 additions & 0 deletions test/api/users-details.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
const { startServer, stopServer } = require('../../lib/server.js');
const { request } = require('../scripts/helpers');
const generator = require('../scripts/generator');

describe('User details', () => {
beforeAll(async () => {
await startServer();
});

afterAll(async () => {
await stopServer();
});

afterEach(async () => {
await generator.clearAll();
});

test('should return 404 if the user is not found', async () => {
const user = await generator.createUser({ username: 'test', mail_confirmed_at: new Date() });
const token = await generator.createAccessToken({}, user);

const res = await request({
uri: '/members/1337',
method: 'GET',
headers: { 'X-Auth-Token': token.value }
});

expect(res.statusCode).toEqual(404);
expect(res.body.success).toEqual(false);
expect(res.body).not.toHaveProperty('data');
expect(res.body).toHaveProperty('message');
});

test('should find the user by username', async () => {
const user = await generator.createUser({ username: 'test', mail_confirmed_at: new Date() });
const token = await generator.createAccessToken({}, user);

const res = await request({
uri: '/members/test',
method: 'GET',
headers: { 'X-Auth-Token': token.value }
});

expect(res.statusCode).toEqual(200);
expect(res.body.success).toEqual(true);
expect(res.body).toHaveProperty('data');
expect(res.body).not.toHaveProperty('errors');
expect(res.body.data.id).toEqual(user.id);
});

test('should find the user by username case-insensitive', async () => {
const user = await generator.createUser({ username: 'test', mail_confirmed_at: new Date() });
const token = await generator.createAccessToken({}, user);

const res = await request({
uri: '/members/TEST',
method: 'GET',
headers: { 'X-Auth-Token': token.value }
});

expect(res.statusCode).toEqual(200);
expect(res.body.success).toEqual(true);
expect(res.body).toHaveProperty('data');
expect(res.body).not.toHaveProperty('errors');
expect(res.body.data.id).toEqual(user.id);
});


test('should find the user by id', async () => {
const user = await generator.createUser({ mail_confirmed_at: new Date() });
const token = await generator.createAccessToken({}, user);

const res = await request({
uri: '/members/' + user.id,
method: 'GET',
headers: { 'X-Auth-Token': token.value }
});

expect(res.statusCode).toEqual(200);
expect(res.body.success).toEqual(true);
expect(res.body).toHaveProperty('data');
expect(res.body).not.toHaveProperty('errors');
expect(res.body.data.id).toEqual(user.id);
});
});

0 comments on commit da1fbd4

Please sign in to comment.