UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

88 lines (87 loc) 4.13 kB
/* * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com> * This file is part of Sync-in | The open source file sync and share solution * See the LICENSE file for licensing details */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _testing = require("@nestjs/testing"); const _usermodel = require("../../../applications/users/models/user.model"); const _adminusersmanagerservice = require("../../../applications/users/services/admin-users-manager.service"); const _adminusersqueriesservice = require("../../../applications/users/services/admin-users-queries.service"); const _usersmanagerservice = require("../../../applications/users/services/users-manager.service"); const _usersqueriesservice = require("../../../applications/users/services/users-queries.service"); const _test = require("../../../applications/users/utils/test"); const _functions = require("../../../common/functions"); const _cacheservice = require("../../../infrastructure/cache/services/cache.service"); const _constants = require("../../../infrastructure/database/constants"); const _authmanagerservice = require("../auth-manager.service"); const _authmethoddatabaseservice = require("./auth-method-database.service"); describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{ let authMethodDatabase; let usersManager; let userTest; beforeAll(async ()=>{ const module = await _testing.Test.createTestingModule({ providers: [ _authmethoddatabaseservice.AuthMethodDatabase, _usersmanagerservice.UsersManager, _usersqueriesservice.UsersQueries, _adminusersmanagerservice.AdminUsersManager, _adminusersqueriesservice.AdminUsersQueries, { provide: _authmanagerservice.AuthManager, useValue: {} }, { provide: _constants.DB_TOKEN_PROVIDER, useValue: {} }, { provide: _cacheservice.Cache, useValue: {} } ] }).compile(); authMethodDatabase = module.get(_authmethoddatabaseservice.AuthMethodDatabase); usersManager = module.get(_usersmanagerservice.UsersManager); module.useLogger([ 'fatal' ]); // mocks userTest = new _usermodel.UserModel((0, _test.generateUserTest)(), false); usersManager.updateAccesses = jest.fn(()=>Promise.resolve()); }); it('should be defined', ()=>{ expect(authMethodDatabase).toBeDefined(); expect(usersManager).toBeDefined(); expect(userTest).toBeDefined(); }); it('should validate the user', async ()=>{ userTest.makePaths = jest.fn(); usersManager.findUser = jest.fn().mockReturnValue({ ...userTest, password: await (0, _functions.hashPassword)(userTest.password) }); expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeDefined(); expect(userTest.makePaths).toHaveBeenCalled(); }); it('should not validate the user', async ()=>{ usersManager.findUser = jest.fn().mockReturnValueOnce(null).mockReturnValueOnce({ ...userTest, password: await (0, _functions.hashPassword)('bar') }).mockRejectedValueOnce({ message: 'db error', code: 'ECONNREFUSED' }).mockRejectedValueOnce({ message: 'db error', code: 'OTHER' }); expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeNull(); expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeNull(); await expect(authMethodDatabase.validateUser(userTest.login, userTest.password)).rejects.toThrow(); await expect(authMethodDatabase.validateUser(userTest.login, userTest.password)).rejects.toThrow(); }); }); //# sourceMappingURL=auth-method-database.service.spec.js.map