71 lines
3.1 KiB
TypeScript

import { beforeAll, describe, expect, it } from '@jest/globals';
import { MeetUserRole } from '@openvidu-meet/typings';
import { MEET_ENV } from '../../../../src/environment.js';
import { deleteAllUsers, getMe, loginRootAdmin, startTestServer } from '../../../helpers/request-helpers.js';
import { setupTestUsers } from '../../../helpers/test-scenarios.js';
import { TestUsers } from '../../../interfaces/scenarios.js';
describe('Users API Tests', () => {
let rootAdminAccessToken: string;
let testUsers: TestUsers;
beforeAll(async () => {
await startTestServer();
({ accessToken: rootAdminAccessToken } = await loginRootAdmin());
testUsers = await setupTestUsers();
});
afterAll(async () => {
await deleteAllUsers();
});
describe('Profile Tests', () => {
it('should return root admin profile', async () => {
const response = await getMe(rootAdminAccessToken);
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('userId', MEET_ENV.INITIAL_ADMIN_USER);
expect(response.body).toHaveProperty('name', 'Admin');
expect(response.body).toHaveProperty('role', MeetUserRole.ADMIN);
expect(response.body).toHaveProperty('registrationDate');
expect(response.body).not.toHaveProperty('passwordHash');
expect(response.body).not.toHaveProperty('mustChangePassword');
});
it('should return ADMIN user profile', async () => {
const user = testUsers.admin;
const response = await getMe(user.accessToken);
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('userId', user.user.userId);
expect(response.body).toHaveProperty('name', user.user.name);
expect(response.body).toHaveProperty('role', user.user.role);
expect(response.body).toHaveProperty('registrationDate', user.user.registrationDate);
expect(response.body).not.toHaveProperty('passwordHash');
expect(response.body).not.toHaveProperty('mustChangePassword');
});
it('should return USER user profile', async () => {
const user = testUsers.user;
const response = await getMe(user.accessToken);
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('userId', user.user.userId);
expect(response.body).toHaveProperty('name', user.user.name);
expect(response.body).toHaveProperty('role', user.user.role);
expect(response.body).toHaveProperty('registrationDate', user.user.registrationDate);
expect(response.body).not.toHaveProperty('passwordHash');
expect(response.body).not.toHaveProperty('mustChangePassword');
});
it('should return ROOM_MEMBER user profile', async () => {
const user = testUsers.roomMember;
const response = await getMe(user.accessToken);
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('userId', user.user.userId);
expect(response.body).toHaveProperty('name', user.user.name);
expect(response.body).toHaveProperty('role', user.user.role);
expect(response.body).toHaveProperty('registrationDate', user.user.registrationDate);
expect(response.body).not.toHaveProperty('passwordHash');
expect(response.body).not.toHaveProperty('mustChangePassword');
});
});
});