| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- const mongoose = require('mongoose');
- const { getInstance } = require('../setup-crowi');
- describe('User', () => {
- // biome-ignore lint/correctness/noUnusedVariables: ignore
- let crowi;
- let User;
- let adminusertestToBeRemovedId;
- beforeAll(async () => {
- crowi = await getInstance();
- User = mongoose.model('User');
- await User.insertMany([
- {
- name: 'Example for User Test',
- username: 'usertest',
- email: 'usertest@example.com',
- password: 'usertestpass',
- lang: 'en_US',
- },
- {
- name: 'Admin Example Active',
- username: 'adminusertest1',
- email: 'adminusertest1@example.com',
- password: 'adminusertestpass',
- admin: true,
- status: User.STATUS_ACTIVE,
- lang: 'en_US',
- },
- {
- name: 'Admin Example Suspended',
- username: 'adminusertest2',
- email: 'adminusertes2@example.com',
- password: 'adminusertestpass',
- admin: true,
- status: User.STATUS_SUSPENDED,
- lang: 'en_US',
- },
- {
- name: 'Admin Example to delete',
- username: 'adminusertestToBeRemoved',
- email: 'adminusertestToBeRemoved@example.com',
- password: 'adminusertestpass',
- admin: true,
- status: User.STATUS_ACTIVE,
- lang: 'en_US',
- },
- ]);
- // delete adminusertestToBeRemoved
- const adminusertestToBeRemoved = await User.findOne({
- username: 'adminusertestToBeRemoved',
- });
- adminusertestToBeRemovedId = adminusertestToBeRemoved._id;
- await adminusertestToBeRemoved.statusDelete();
- });
- describe('Create and Find.', () => {
- describe('The user', () => {
- test('should created with createUserByEmailAndPassword', (done) => {
- User.createUserByEmailAndPassword(
- 'Example2 for User Test',
- 'usertest2',
- 'usertest2@example.com',
- 'usertest2pass',
- 'en_US',
- (err, userData) => {
- expect(err).toBeNull();
- expect(userData).toBeInstanceOf(User);
- expect(userData.name).toBe('Example2 for User Test');
- done();
- },
- );
- });
- test('should be found by findUserByUsername', async () => {
- const user = await User.findUserByUsername('usertest');
- expect(user).toBeInstanceOf(User);
- expect(user.name).toBe('Example for User Test');
- });
- });
- });
- describe('Delete.', () => {
- describe('Deleted users', () => {
- test('should have correct attributes', async () => {
- const adminusertestToBeRemoved = await User.findOne({
- _id: adminusertestToBeRemovedId,
- });
- expect(adminusertestToBeRemoved).toBeInstanceOf(User);
- expect(adminusertestToBeRemoved.name).toBe('');
- expect(adminusertestToBeRemoved.password).toBe('');
- expect(adminusertestToBeRemoved.googleId).toBeNull();
- expect(adminusertestToBeRemoved.isGravatarEnabled).toBeFalsy();
- expect(adminusertestToBeRemoved.image).toBeNull();
- });
- });
- });
- describe('User.findAdmins', () => {
- test('should retrieves only active users', async () => {
- const users = await User.findAdmins();
- const adminusertestActive = users.find(
- (user) => user.username === 'adminusertest1',
- );
- const adminusertestSuspended = users.find(
- (user) => user.username === 'adminusertest2',
- );
- const adminusertestToBeRemoved = users.find(
- (user) => user._id.toString() === adminusertestToBeRemovedId.toString(),
- );
- expect(adminusertestActive).toBeInstanceOf(User);
- expect(adminusertestSuspended).toBeUndefined();
- expect(adminusertestToBeRemoved).toBeUndefined();
- });
- test("with 'includesInactive' option should retrieves suspended users", async () => {
- const users = await User.findAdmins({
- status: [User.STATUS_ACTIVE, User.STATUS_SUSPENDED],
- });
- const adminusertestActive = users.find(
- (user) => user.username === 'adminusertest1',
- );
- const adminusertestSuspended = users.find(
- (user) => user.username === 'adminusertest2',
- );
- const adminusertestToBeRemoved = users.find(
- (user) => user._id.toString() === adminusertestToBeRemovedId.toString(),
- );
- expect(adminusertestActive).toBeInstanceOf(User);
- expect(adminusertestSuspended).toBeInstanceOf(User);
- expect(adminusertestToBeRemoved).toBeUndefined();
- });
- });
- describe('User Utilities', () => {
- describe('Get user exists from user page path', () => {
- test('found', async () => {
- const userPagePath = '/user/usertest';
- const isExist = await User.isExistUserByUserPagePath(userPagePath);
- expect(isExist).toBe(true);
- });
- test('not found', async () => {
- const userPagePath = '/user/usertest-hoge';
- const isExist = await User.isExistUserByUserPagePath(userPagePath);
- expect(isExist).toBe(false);
- });
- });
- });
- });
|