feat(tests): create useCase for UsersInServices

This commit is contained in:
2024-03-07 14:47:21 +03:00
parent a14fd56955
commit b5b3c616dc
27 changed files with 1048 additions and 724 deletions

View File

@@ -1,5 +1,5 @@
import {get, post, put, remove} from './apiHelpers.js'
import {convertList} from '@helpers/adapter/adapter.js'
import {convertList, convertObject} from '@helpers/adapter/adapter.js'
import {devUsersList} from './StaticData.js'
/**
@@ -8,15 +8,22 @@ import {devUsersList} from './StaticData.js'
* @param {Number} id
*/
const adapter_config = {
id: "id",
first_name: "firstName",
last_name: "lastName",
email: "email",
role: "role",
}
class Users {
/**
* Класс управления роутерами
* @param {String} apiAddr - path to service
* @param {Object | undefined} adapter_config - oldKey: newKey
* @param {Object | undefined} params - Конфиг настроек
* @param {'prod' | 'test'} params.mode - Конфиг настроек
*/
constructor(apiAddr, adapter_config = {}, params = {mode: 'prod'}) {
constructor(apiAddr, params = {mode: 'prod'}) {
this.apiAddr = apiAddr
this.config = adapter_config
this.mode = params.mode
@@ -28,7 +35,7 @@ class Users {
* @param {'prod' | 'dev'} params.mode - Конфиг настроек
* @returns {Promise<*[]> | *[]}
*/
async getUsers(params) {
async getUsers(params = {mode: 'prod'}) {
if (params.mode === "dev") {
return devUsersList
}
@@ -41,9 +48,9 @@ class Users {
*
* @param {Number} id - Сервис id, если id не указан, отображается список всех роутеров
* @param {'dev' | 'prod'} mode - Сервис id, если id не указан, отображается список всех роутеров
* @returns {Promise<*[]>}
* @returns {Promise<Array<User>> | any}
*/
async getUsersBySiteId(id, mode) {
async getUsersByServiceId(id, mode) {
if (mode === "dev") {
return devUsersList
}
@@ -55,33 +62,33 @@ class Users {
/**
*
* @param {User} userData
* @returns {Promise<void>}
* @returns {Promise<Object>}
*/
async createUser(userData) {
const newUser = await post(`${this.apiAddr}/users`, userData)
return newUser
return convertObject(newUser, {config: this.config})
}
/**
*
* @param {User} userData
* @returns {Promise<void>}
* @returns {Promise<Object>}
*/
async updateUser(userData) {
const updatedUserData = {...userData}
delete updatedUserData.id
const newUser = await put(`${this.apiAddr}/users/${userData.id}`, updatedUserData)
return newUser
return convertObject(newUser, {config: this.config})
}
/**
*
* @param {Number} userId - Сервис id, если id не указан, отображается список всех роутеров
* @returns {Promise<*[]>}
* @returns {Promise<Object>}
*/
async removeUser(userId) {
const removedUser = await remove(`${this.apiAddr}/users/${userId}`)
return removedUser
return convertObject(removedUser, {config: this.config})
}