From b5b3c616dc6ccfde984c729c0aa2fc82595648bd Mon Sep 17 00:00:00 2001 From: vbuglov Date: Thu, 7 Mar 2024 14:47:21 +0300 Subject: [PATCH] feat(tests): create useCase for UsersInServices --- .../src/adapters/adapterOfUsers/Users.js | 31 +- .../2_molecules/Tabulator/VTabulator.vue | 1 - .../3_organisms/UsersManager/UsersManager.vue | 27 +- .../UsersManager/UsersManagerUsersTable.vue | 37 +- .../SitesManagerPage/SitesManagerPage.vue | 2 + .../services/serviceOfServices/Services.js | 4 + .../src/services/serviceOfUsers/Users.js | 35 +- .../src/store/modules/services/index.js | 3 +- .../src/useCases/CaseOfUsersInService.js | 15 +- users-manage/tests/adapters/Users.test.js | 54 +- users-manage/tests/mocks/adapters.js | 23 + users-manage/tests/mocks/services.js | 0 users-manage/tests/mocks/users.js | 17 + .../tests/services/serviceOfServices.test.js | 1 + .../tests/services/serviceOfUsers.test.js | 18 - .../tests/services/serviceOfUsers/MockData.js | 71 ++ .../serviceOfUsers/serviceOfUsers.test.js | 36 + .../useCases/CaseOfUsersInService.test.js | 106 -- .../CaseOfUsersInService.test.js | 31 + .../useCases/CaseOfUsersInService/MockData.js | 76 ++ .../tests/views/2_molecules/Tabulator.test.js | 1 - .../tests/views/2_molecules/TabulatorMock.js | 4 - .../tests/views/3_organisms/StaticMocks.js | 50 + .../views/3_organisms/UsersManager.test.js | 37 +- .../3_organisms/UsersManagerTable.test.js | 1 + users-manage/vite.config.js | 9 +- users-manage/yarn.lock | 1082 +++++++++-------- 27 files changed, 1048 insertions(+), 724 deletions(-) create mode 100644 users-manage/tests/mocks/adapters.js create mode 100644 users-manage/tests/mocks/services.js create mode 100644 users-manage/tests/mocks/users.js delete mode 100644 users-manage/tests/services/serviceOfUsers.test.js create mode 100644 users-manage/tests/services/serviceOfUsers/MockData.js create mode 100644 users-manage/tests/services/serviceOfUsers/serviceOfUsers.test.js delete mode 100644 users-manage/tests/useCases/CaseOfUsersInService.test.js create mode 100644 users-manage/tests/useCases/CaseOfUsersInService/CaseOfUsersInService.test.js create mode 100644 users-manage/tests/useCases/CaseOfUsersInService/MockData.js create mode 100644 users-manage/tests/views/3_organisms/StaticMocks.js diff --git a/users-manage/src/adapters/adapterOfUsers/Users.js b/users-manage/src/adapters/adapterOfUsers/Users.js index aad01a7..7d48f96 100644 --- a/users-manage/src/adapters/adapterOfUsers/Users.js +++ b/users-manage/src/adapters/adapterOfUsers/Users.js @@ -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> | 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} + * @returns {Promise} */ async createUser(userData) { const newUser = await post(`${this.apiAddr}/users`, userData) - return newUser + return convertObject(newUser, {config: this.config}) } /** * * @param {User} userData - * @returns {Promise} + * @returns {Promise} */ 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} */ async removeUser(userId) { const removedUser = await remove(`${this.apiAddr}/users/${userId}`) - return removedUser + return convertObject(removedUser, {config: this.config}) } diff --git a/users-manage/src/components/2_molecules/Tabulator/VTabulator.vue b/users-manage/src/components/2_molecules/Tabulator/VTabulator.vue index 716946a..87ccc87 100644 --- a/users-manage/src/components/2_molecules/Tabulator/VTabulator.vue +++ b/users-manage/src/components/2_molecules/Tabulator/VTabulator.vue @@ -94,7 +94,6 @@ export default { }, methods: { makeTable () { - console.log(Tabulator) this.table = new Tabulator(this.$refs[this.refId], this.getConfig()) }, getConfig () { diff --git a/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue b/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue index 2c36ad4..809488d 100644 --- a/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue +++ b/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue @@ -9,6 +9,12 @@ import {mapGetters} from 'vuex' export default { name: 'UsersManager', components: {ModuleContainer, UsersTable, UsersEditor, ManagerTitle, VButton}, + props: { + serviceOfUsers: { + type: Object, + default: () => ({}) + } + }, data() { return { componentState: 'view' // view | create | select @@ -26,6 +32,7 @@ export default { }, openUserPanelOfSelect() { this.componentState = 'select' + this.serviceOfUsers.fetchUsersOffSite() }, closeUserPanel() { this.componentState = 'view' @@ -36,10 +43,10 @@ export default {