| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- const mongoose = require('mongoose');
- const { getInstance } = require('../setup-crowi');
- describe('accessTokenParser', () => {
- let crowi;
- let accessTokenParser;
- let User;
- let targetUser;
- beforeAll(async() => {
- crowi = await getInstance();
- User = mongoose.model('User');
- accessTokenParser = require('~/server/middlewares/access-token-parser')(crowi);
- targetUser = await User.create({
- name: 'Example for access token parser',
- username: 'targetUser',
- password: 'usertestpass',
- lang: 'en_US',
- apiToken: 'N4xPDjh48TBsC7ahUN+ajjL5asnGpwtA5VAR+EhIDeg=',
- });
- });
- crowi = {
- model: jest.fn().mockReturnValue(User),
- };
- const req = {
- query: {},
- body: {},
- user: {},
- };
- const res = {};
- const next = jest.fn().mockReturnValue('next');
- test('without accessToken', async() => {
- const result = await accessTokenParser(req, res, next);
- expect(next).toHaveBeenCalled();
- expect(result).toBe('next');
- });
- test('with invalid accessToken', async() => {
- req.query.access_token = 'invalidAccessToken';
- const result = await accessTokenParser(req, res, next);
- expect(next).toHaveBeenCalled();
- expect(result).toBe('next');
- });
- test('with accessToken in query', async() => {
- req.query.access_token = 'N4xPDjh48TBsC7ahUN+ajjL5asnGpwtA5VAR+EhIDeg=';
- const result = await accessTokenParser(req, res, next);
- expect(next).toHaveBeenCalled();
- expect(result).toBe('next');
- expect(req.user._id).toStrictEqual(targetUser._id);
- });
- test('with accessToken in body', async() => {
- req.body.access_token = 'N4xPDjh48TBsC7ahUN+ajjL5asnGpwtA5VAR+EhIDeg=';
- const result = await accessTokenParser(req, res, next);
- expect(next).toHaveBeenCalled();
- expect(result).toBe('next');
- expect(req.user._id).toStrictEqual(targetUser._id);
- });
- });
|