@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
97 lines (96 loc) • 3.71 kB
JavaScript
/*
* 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 _appbootstrap = require("../../app.bootstrap");
const _authmanagerservice = require("../../authentication/services/auth-manager.service");
const _utils = require("../../infrastructure/database/utils");
const _routes = require("./constants/routes");
const _user = require("./constants/user");
const _usermodel = require("./models/user.model");
const _adminusersmanagerservice = require("./services/admin-users-manager.service");
const _test = require("./utils/test");
describe('Users (e2e)', ()=>{
let app;
let authManager;
let adminUsersManager;
let userTest;
let tokens;
beforeAll(async ()=>{
app = await (0, _appbootstrap.appBootstrap)();
await app.init();
await app.getHttpAdapter().getInstance().ready();
authManager = app.get(_authmanagerservice.AuthManager);
adminUsersManager = app.get(_adminusersmanagerservice.AdminUsersManager);
userTest = new _usermodel.UserModel((0, _test.generateUserTest)(false), false);
});
afterAll(async ()=>{
await expect(adminUsersManager.deleteUserOrGuest(userTest.id, userTest.login, {
deleteSpace: true
})).resolves.not.toThrow();
await (0, _utils.dbCloseConnection)(app);
await app.close();
});
it('should be defined', ()=>{
expect(authManager).toBeDefined();
expect(adminUsersManager).toBeDefined();
expect(userTest).toBeDefined();
});
it('should get the database connection', async ()=>{
expect(await (0, _utils.dbCheckConnection)(app)).toBe(true);
});
it(`GET ${_routes.API_USERS_ME} => 401`, async ()=>{
const res = await app.inject({
method: 'GET',
url: _routes.API_USERS_ME
});
expect(res.statusCode).toEqual(401);
});
it(`GET ${_routes.API_USERS_ME} => 200`, async ()=>{
userTest = await adminUsersManager.createUserOrGuest(userTest, _user.USER_ROLE.USER);
expect(userTest.id).toBeDefined();
tokens = await authManager.getTokens(userTest);
const res = await app.inject({
method: 'GET',
url: _routes.API_USERS_ME,
headers: {
authorization: `Bearer ${tokens.access}`
}
});
expect(res.statusCode).toEqual(200);
const content = res.json();
expect(content.user).toBeDefined();
expect(content.user.id).toBe(userTest.id);
});
it(`GET ${_routes.API_USERS_AVATAR} => 200`, async ()=>{
const res1 = await app.inject({
method: 'GET',
url: `${_routes.API_USERS_AVATAR}/me`,
headers: {
authorization: `Bearer ${tokens.access}`
}
});
const res2 = await app.inject({
method: 'GET',
url: `${_routes.API_USERS_AVATAR}/${userTest.login}`,
headers: {
authorization: `Bearer ${tokens.access}`
}
});
for (const res of [
res1,
res2
]){
expect(res.statusCode).toEqual(200);
expect(res.rawPayload).toBeInstanceOf(Buffer);
expect(res.rawPayload.byteLength).toBeGreaterThan(1);
}
expect(res1.raw.req.user).toBe(res2.raw.req.user);
expect(res1.rawPayload.byteLength).toEqual(res2.rawPayload.byteLength);
});
});
//# sourceMappingURL=users.e2e-spec.js.map