From 327f716fe9f01e7250817a62df5e81d96c2d68e6 Mon Sep 17 00:00:00 2001 From: SergeyVS Date: Wed, 3 Apr 2024 11:58:49 +0300 Subject: [PATCH] updated Service of Users, updated tests --- .../3_organisms/UsersManager/UserEditor.vue | 17 ++- .../3_organisms/UsersManager/UsersManager.vue | 2 +- .../src/services/serviceOfUsers/Users.js | 61 +++++----- .../src/useCases/CaseOfUsersInService.js | 49 ++++---- users-manage/tests/mocks/services.js | 85 ++++++++++++++ users-manage/tests/mocks/users.js | 45 +++++++- .../serviceOfUsers/serviceOfUsers.test.js | 48 +------- users-manage/tests/store/services.test.js | 87 +-------------- users-manage/tests/store/users.test.js | 64 ++--------- .../Services/EditServiceCard.test.js | 56 +++------- .../3_organisms/Services/ServiceCard.test.js | 62 ++++------- .../3_organisms/Services/ServicesList.test.js | 90 +-------------- .../3_organisms/Users/UsersManager.test.js | 16 ++- .../Users/UsersManagerSelection.test.js | 52 ++------- .../Users/UsersManagerTable.test.js | 81 ++++---------- .../Users/UsersManagerUserEditor.test.js | 105 ++++-------------- .../tests/views/5_pages/SitesList.test.js | 38 +------ 17 files changed, 314 insertions(+), 644 deletions(-) diff --git a/users-manage/src/components/3_organisms/UsersManager/UserEditor.vue b/users-manage/src/components/3_organisms/UsersManager/UserEditor.vue index a994383..4c2e172 100644 --- a/users-manage/src/components/3_organisms/UsersManager/UserEditor.vue +++ b/users-manage/src/components/3_organisms/UsersManager/UserEditor.vue @@ -36,29 +36,28 @@ export default { methods: { editData (params) { if (params.key === 'password') { + this.serviceOfUsers.setUserFields(params.key, params.value) this.errorPassword = isFullLengthPassword(params.value) - this.serviceOfUsers.editUserByService(params) - if (this.errorPassword) return + if (this.errorPassword) return false this.errorPassword = equalPasswords(params.value, this.repeatPassword) - this.serviceOfUsers.editUserByService(params) - if (this.errorPassword) return + if (this.errorPassword) return false } if (params.key === 'repeat_password') { this.repeatPassword = params.value this.errorPassword = equalPasswords(this.selectedUser.password, this.repeatPassword) - if (this.errorPassword) return + if (this.errorPassword) return false } - this.serviceOfUsers.editUserByService(params) + this.serviceOfUsers.setUserFields(params.key, params.value) }, saveUser() { this.errorPassword = isRepeatPasswordEmpty(this.selectedUser.password, this.repeatPassword) - if (this.errorPassword) return - this.serviceOfUsers.saveUpdatedDataUser(this.selectedService.id) + if (this.errorPassword) return false + this.selectedUser.id ? this.selectedUser.id === -1 ? this.serviceOfUsers.createUser(this.selectedService.id) : this.serviceOfUsers.updateUser() : '' this.serviceOfUsers.setStatusUser('inactive') }, getPassword () { const pass = generatePassword() - this.serviceOfUsers.editUserByService({key: 'password', value: pass}) + this.serviceOfUsers.setUserFields('password', pass) this.errorPassword = equalPasswords(pass, this.repeatPassword) }, togglePass () { diff --git a/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue b/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue index 6f99e89..50790d5 100644 --- a/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue +++ b/users-manage/src/components/3_organisms/UsersManager/UsersManager.vue @@ -40,7 +40,7 @@ export default { }, methods: { openUserPanelOfCreate() { - this.serviceOfUsers.createNewUser() + this.serviceOfUsers.addNewUser() this.serviceOfUsers.setStatusUser('create') }, openUserPanelOfSelect() { diff --git a/users-manage/src/services/serviceOfUsers/Users.js b/users-manage/src/services/serviceOfUsers/Users.js index 2a8a2ad..4d8fc2d 100644 --- a/users-manage/src/services/serviceOfUsers/Users.js +++ b/users-manage/src/services/serviceOfUsers/Users.js @@ -50,7 +50,7 @@ class UsersOfServices { * * @returns {Promise} */ - async createNewUser() { + async addNewUser() { const newUser = {id: -1, firstName: '',lastName: '', role: '', email: '', password: '', serviceId: []} this.store.dispatch('users/updateSelectedUser', newUser) return newUser @@ -101,7 +101,6 @@ class UsersOfServices { this.store.dispatch('users/updateUsers', updatedUsers) this.store.dispatch('users/updateUsersWithService', usersWithService) this.store.dispatch('users/updateUsersWithoutService', usersWithoutService) - // return addedUser } /** @@ -109,10 +108,10 @@ class UsersOfServices { * @param {Object} params * @returns {Promise} */ - async editUserByService(params) { + async setUserFields(key, value) { const selectedUser = this.store.getters['users/selectedUser'] if (selectedUser) { - selectedUser[params.key] = params.value + selectedUser[key] = value this.store.dispatch('users/updateSelectedUser', selectedUser) return selectedUser } @@ -133,7 +132,6 @@ class UsersOfServices { this.store.dispatch('users/updateUsers', updatedUsers) this.store.dispatch('users/updateUsersWithService', usersWithService) this.store.dispatch('users/updateUsersWithoutService', usersWithoutService) - // return deletedUser } /** @@ -141,33 +139,36 @@ class UsersOfServices { * @param {Number} serviceId - updated data for selected user, send to server * @returns {Promise} */ - async saveUpdatedDataUser(serviceId) { + async createUser(serviceId) { + const selectedUser = this.store.getters['users/selectedUser'] + if (selectedUser && selectedUser.id && selectedUser.id === -1) { + const users = this.store.getters['users/users'] + const userData = {...selectedUser, + id: users.length + 1, // временно пока нет данных с сервера + serviceId: [serviceId], + } + // const createdUser = await this.adapter.createUser(userData) // Запрос на создание нового пользователя + // const updatedUsers = addedUser(createdUser, users) + const updatedUsers = addedUser(userData, users) + const usersWithService = usersWithThisService(serviceId, updatedUsers) + const usersWithoutService = usersWithoutThisService(serviceId, updatedUsers) + this.store.dispatch('users/updateUsers', updatedUsers) + this.store.dispatch('users/updateUsersWithService', usersWithService) + this.store.dispatch('users/updateUsersWithoutService', usersWithoutService) + } + } + + /** + * + * @returns {Promise} + */ + async updateUser() { const selectedUser = this.store.getters['users/selectedUser'] - // const userStatus = this.store.getters['users/userStatus'] if (selectedUser && selectedUser.id) { - if (selectedUser.id === -1) { - const users = this.store.getters['users/users'] - const userData = {...selectedUser, - id: users.length + 1, // временно пока нет данных с сервера - serviceId: [serviceId], - } - // const createdUser = await this.adapter.createUser(userData) // Запрос на создание нового пользователя - // const updatedUsers = addedUser(createdUser, users) - const updatedUsers = addedUser(userData, users) - const usersWithService = usersWithThisService(serviceId, updatedUsers) - const usersWithoutService = usersWithoutThisService(serviceId, updatedUsers) - this.store.dispatch('users/updateUsers', updatedUsers) - this.store.dispatch('users/updateUsersWithService', usersWithService) - this.store.dispatch('users/updateUsersWithoutService', usersWithoutService) - // return createdUser - } - if (selectedUser.id !== -1) { - // const updatedUser = await this.adapter.updateUser(selectedUser) // Запрос на обновление пользователя с новыми данными - const users = this.store.getters['users/usersWithService'] - const updatedUsers = updatedUser(selectedUser, users) - this.store.dispatch('users/updateUsersWithService', updatedUsers) - // return updatedUser - } + // const updatedUser = await this.adapter.updateUser(selectedUser) // Запрос на обновление пользователя с новыми данными + const users = this.store.getters['users/usersWithService'] + const updatedUsers = updatedUser(selectedUser, users) + this.store.dispatch('users/updateUsersWithService', updatedUsers) } } diff --git a/users-manage/src/useCases/CaseOfUsersInService.js b/users-manage/src/useCases/CaseOfUsersInService.js index 67d1743..0c3f4af 100644 --- a/users-manage/src/useCases/CaseOfUsersInService.js +++ b/users-manage/src/useCases/CaseOfUsersInService.js @@ -1,7 +1,22 @@ +import {Logger} from '3-class-complex-assistants' +import moment from 'moment/moment.js' + +const loggerInfo = { + "loggerLevel": 1, + "serviceName": "users-manage", + "port": 5173, + "datetime": moment().format("YYYY-MM-DDTHH:mm:ss"), +} + +const callbackError = (error) => { + return console.err(error) +} + class UsersInService { constructor(serviceOfUsers, serviceOfServices) { this.serviceOfUsers = serviceOfUsers this.serviceOfServices = serviceOfServices + this.loggerConfig = {...loggerInfo, callFunc: callbackError, isPushToServer: true} } async getUsersWithSelectService(selectedService, mode) { @@ -10,54 +25,32 @@ class UsersInService { } async addUserToService(userId) { + const logger = new Logger(this.loggerConfig) const selectedService = await this.serviceOfServices.getSelectedService() if (!selectedService) { - console.error('addUserToService: Service not found') + logger.error('addUserToService: Service not found') return {} } if (!userId) { - console.error('addUserToService: User not selected') + logger.error('addUserToService: User not selected') return {} } this.serviceOfUsers.addUserToService(userId, selectedService.id) } async deleteUserFromService(userId) { + const logger = new Logger(this.loggerConfig) const selectedService = await this.serviceOfServices.getSelectedService() if (!selectedService) { - console.error('removeUserFromService: Service not found') + logger.error('removeUserFromService: Service not found') return {} } if (!userId) { - console.error('removeUserFromService: User not selected') + logger.error('removeUserFromService: User not selected') return {} } this.serviceOfUsers.deleteUserFromService(userId, selectedService.id) } - - async saveEditedData() { - const selectedService = await this.serviceOfServices.getSelectedService() - if (!selectedService) { - console.error('saveEditedData: Service not found') - return {} - } - if (selectedService.id == -1) { - const data = { - name: selectedService.name, - port: selectedService.port, - device_ip: selectedService.device_ip, - proxy_ip: selectedService.proxy_ip, - description: selectedService.description, - is_online: selectedService.is_online, - } - const newService = await this.serviceOfServices.createNewService(data) - this.serviceOfUsers.saveUpdatedDataUser(newService.id) - } else { - this.serviceOfServices.saveService(selectedService) - this.serviceOfUsers.saveUpdatedDataUser(selectedService.id) - } - } - } export default UsersInService diff --git a/users-manage/tests/mocks/services.js b/users-manage/tests/mocks/services.js index e69de29..9aabbf9 100644 --- a/users-manage/tests/mocks/services.js +++ b/users-manage/tests/mocks/services.js @@ -0,0 +1,85 @@ +const defaultServices = [ + { + "id": 1, + "created_at": "2024-03-06T17:31:31.948355541+03:00", + "updated_at": "2024-03-06T17:31:31.948355541+03:00", + "deleted_at": null, + "name": "jsonplaceholder.typicode.com", + "port": 9965, + "proxy_ip": "172.25.78.153", + "site_ip": "https://jsonplaceholder.typicode.com/", + "internet_uri": "localhost", + "description": "localhost", + "is_online": true + }, + { + "id": 2, + "created_at": "2024-03-07T11:43:51.026265459+03:00", + "updated_at": "2024-03-07T13:35:12.506368972+03:00", + "deleted_at": null, + "name": "new 2", + "port": 4548, + "proxy_ip": "172.25.78.151", + "site_ip": "172.25.78.151", + "internet_uri": "", + "description": "new site 2", + "is_online": true + }, + { + "id": 3, + "created_at": "2024-03-07T11:43:51.027148541+03:00", + "updated_at": "2024-03-07T13:35:24.919273428+03:00", + "deleted_at": null, + "name": "new 3", + "port": 2527, + "proxy_ip": "172.25.78.151", + "site_ip": "172.25.78.151", + "internet_uri": "", + "description": "new site 3...", + "is_online": true + } +] + +const resServices = [ + { + "id": 1, + "createdAt": "2024-03-06T17:31:31.948355541+03:00", + "updatedAt": "2024-03-06T17:31:31.948355541+03:00", + "deletedAt": null, + "name": "jsonplaceholder.typicode.com", + "port": 9965, + "proxyIp": "172.25.78.153", + "deviceIp": "https://jsonplaceholder.typicode.com/", + "internetUri": "localhost", + "description": "localhost", + "isOnline": true + }, + { + "id": 2, + "createdAt": "2024-03-07T11:43:51.026265459+03:00", + "updatedAt": "2024-03-07T13:35:12.506368972+03:00", + "deletedAt": null, + "name": "new 2", + "port": 4548, + "proxyIp": "172.25.78.151", + "deviceIp": "172.25.78.151", + "internetUri": "", + "description": "new site 2", + "isOnline": true + }, + { + "id": 3, + "createdAt": "2024-03-07T11:43:51.027148541+03:00", + "updatedAt": "2024-03-07T13:35:24.919273428+03:00", + "deletedAt": null, + "name": "new 3", + "port": 2527, + "proxyIp": "172.25.78.151", + "deviceIp": "172.25.78.151", + "internetUri": "", + "description": "new site 3...", + "isOnline": true + } +] + +export { defaultServices, resServices } \ No newline at end of file diff --git a/users-manage/tests/mocks/users.js b/users-manage/tests/mocks/users.js index dba7656..2419ae3 100644 --- a/users-manage/tests/mocks/users.js +++ b/users-manage/tests/mocks/users.js @@ -14,4 +14,47 @@ const appUser = { role: 'user', } -export {apiUser, appUser} \ No newline at end of file +const defaultUsers = [ + { + "id": 1, + "serviceId": [1, 3], + "firstName": "Leanne 1", + "lastName": "Graham", + "email": "test@mail.ru", + "role": "admin", + }, + { + "id": 2, + "serviceId": [1], + "firstName": "Leanne 2", + "lastName": "Graham", + "email": "test@mail.ru", + "role": "admin", + }, + { + "id": 3, + "serviceId": [2, 3], + "firstName": "Leanne 3", + "lastName": "Graham", + "email": "test@mail.ru", + "role": "admin", + }, + { + "id": 4, + "serviceId": [3], + "firstName": "Leanne 4", + "lastName": "Graham", + "email": "test@mail.ru", + "role": "admin", + }, + { + "id": 5, + "serviceId": [4, 5], + "firstName": "Leanne 5", + "lastName": "Graham", + "email": "test@mail.ru", + "role": "admin", + }, +] + +export {apiUser, appUser, defaultUsers} \ No newline at end of file diff --git a/users-manage/tests/services/serviceOfUsers/serviceOfUsers.test.js b/users-manage/tests/services/serviceOfUsers/serviceOfUsers.test.js index 434a31a..02d6c7b 100644 --- a/users-manage/tests/services/serviceOfUsers/serviceOfUsers.test.js +++ b/users-manage/tests/services/serviceOfUsers/serviceOfUsers.test.js @@ -14,53 +14,11 @@ import { } from '@services/serviceOfUsers/helpers.js' import { createStore } from 'vuex' import {store as users} from "@/store/modules/users" -import axios from "axios"; +import axios from "axios" +import {defaultUsers} from "@mocks/users" vi.mock('axios') -const defaultUsers = [ - { - "id": 1, - "serviceId": [1, 3], - "firstName": "Leanne 1", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 2, - "serviceId": [1], - "firstName": "Leanne 2", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 3, - "serviceId": [2, 3], - "firstName": "Leanne 3", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 4, - "serviceId": [3], - "firstName": "Leanne 4", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 5, - "serviceId": [4, 5], - "firstName": "Leanne 5", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, -] - describe("tests services of users", () => { const store = createStore({ plugins: [], @@ -103,7 +61,7 @@ describe("tests services of users", () => { test('Added new user layout to user editor', async () => { const newUser = {id: -1, firstName: '',lastName: '', role: '', email: '', password: '', serviceId: []} - const expectUser = await serviceOfUsers.createNewUser() + const expectUser = await serviceOfUsers.addNewUser() expect({newUser: expectUser}).toEqual({newUser}) }) diff --git a/users-manage/tests/store/services.test.js b/users-manage/tests/store/services.test.js index 1b845eb..9b076c6 100644 --- a/users-manage/tests/store/services.test.js +++ b/users-manage/tests/store/services.test.js @@ -4,94 +4,11 @@ import ServiceOfServices from '@services/serviceOfServices/Services.js' import {addedService, updatedService, removedNewService, deletedService} from '@services/serviceOfServices/helpers.js' import { createStore } from 'vuex' import {store as services} from "@/store/modules/services" -import axios from "axios"; +import axios from "axios" +import {defaultServices, resServices} from "@mocks/services" vi.mock('axios') -const defaultServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "site_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - { - "id": 2, - "created_at": "2024-03-07T11:43:51.026265459+03:00", - "updated_at": "2024-03-07T13:35:12.506368972+03:00", - "deleted_at": null, - "name": "new 2", - "port": 4548, - "proxy_ip": "172.25.78.151", - "site_ip": "172.25.78.151", - "internet_uri": "", - "description": "new site 2", - "is_online": true - }, - { - "id": 3, - "created_at": "2024-03-07T11:43:51.027148541+03:00", - "updated_at": "2024-03-07T13:35:24.919273428+03:00", - "deleted_at": null, - "name": "new 3", - "port": 2527, - "proxy_ip": "172.25.78.151", - "site_ip": "172.25.78.151", - "internet_uri": "", - "description": "new site 3...", - "is_online": true - } -] - -const resServices = [ - { - "id": 1, - "createdAt": "2024-03-06T17:31:31.948355541+03:00", - "updatedAt": "2024-03-06T17:31:31.948355541+03:00", - "deletedAt": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxyIp": "172.25.78.153", - "deviceIp": "https://jsonplaceholder.typicode.com/", - "internetUri": "localhost", - "description": "localhost", - "isOnline": true - }, - { - "id": 2, - "createdAt": "2024-03-07T11:43:51.026265459+03:00", - "updatedAt": "2024-03-07T13:35:12.506368972+03:00", - "deletedAt": null, - "name": "new 2", - "port": 4548, - "proxyIp": "172.25.78.151", - "deviceIp": "172.25.78.151", - "internetUri": "", - "description": "new site 2", - "isOnline": true - }, - { - "id": 3, - "createdAt": "2024-03-07T11:43:51.027148541+03:00", - "updatedAt": "2024-03-07T13:35:24.919273428+03:00", - "deletedAt": null, - "name": "new 3", - "port": 2527, - "proxyIp": "172.25.78.151", - "deviceIp": "172.25.78.151", - "internetUri": "", - "description": "new site 3...", - "isOnline": true - } -] - describe("tests services store with vuex", () => { const store = createStore({ plugins: [], diff --git a/users-manage/tests/store/users.test.js b/users-manage/tests/store/users.test.js index c41e695..f521c75 100644 --- a/users-manage/tests/store/users.test.js +++ b/users-manage/tests/store/users.test.js @@ -3,53 +3,11 @@ import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' import { createStore } from 'vuex' import {store as users} from "@/store/modules/users" -import axios from "axios"; +import axios from "axios" +import {defaultUsers} from "@mocks/users" vi.mock('axios') -const defaultUsers = [ - { - "id": 1, - "serviceId": [1, 3], - "firstName": "Leanne 1", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 2, - "serviceId": [1], - "firstName": "Leanne 2", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 3, - "serviceId": [2, 3], - "firstName": "Leanne 3", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 4, - "serviceId": [3], - "firstName": "Leanne 4", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 5, - "serviceId": [4, 5], - "firstName": "Leanne 5", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, -] - describe("tests users store with vuex", () => { const store = createStore({ plugins: [], @@ -111,7 +69,7 @@ describe("tests users store with vuex", () => { test('Created and added new user layout to selected user in store', async () => { - const newUser = await serviceOfUsers.createNewUser() + const newUser = await serviceOfUsers.addNewUser() const newUserStore = store.getters['users/selectedUser'] @@ -122,7 +80,7 @@ describe("tests users store with vuex", () => { test('Get selected user from store', async () => { - await serviceOfUsers.createNewUser() + await serviceOfUsers.addNewUser() const selectedUser = await serviceOfUsers.getSelectedUser() const selectedUserStore = store.getters['users/selectedUser'] @@ -134,7 +92,7 @@ describe("tests users store with vuex", () => { test('Set selected user in store', async () => { await serviceOfUsers.getUsers('dev') - await serviceOfUsers.createNewUser() + await serviceOfUsers.addNewUser() const selectedNewUserStore = store.getters['users/selectedUser'] @@ -197,16 +155,16 @@ describe("tests users store with vuex", () => { await serviceOfUsers.setSelectedUser(5) - await serviceOfUsers.editUserByService({key: "firstName", value: "Leanne 5 edited"}) - await serviceOfUsers.editUserByService({key: "lastName", value: "Graham edited"}) + await serviceOfUsers.setUserFields("firstName", "Leanne 5 edited") + await serviceOfUsers.setUserFields("lastName","Graham edited") const editedUser = store.getters['users/selectedUser'] expect(editedUser.firstName).toEqual("Leanne 5 edited") expect(editedUser.lastName).toEqual("Graham edited") - await serviceOfUsers.editUserByService({key: "firstName", value: "Leanne 5"}) // return to default value - await serviceOfUsers.editUserByService({key: "lastName", value: "Graham"}) // return to default value + await serviceOfUsers.setUserFields("firstName", "Leanne 5") // return to default value + await serviceOfUsers.setUserFields("lastName", "Graham") // return to default value }) @@ -245,7 +203,7 @@ describe("tests users store with vuex", () => { const users = store.getters['users/users'] const countUsers = users.length - await serviceOfUsers.saveUpdatedDataUser(3) + await serviceOfUsers.createUser(3) const usersWithService = store.getters['users/usersWithService'] const newUserAfterAdding = usersWithService.find(user => user.id === countUsers + 1) // Пока не получаем нового юзера с бэка, поэтому задаём id по количеству всех юзеров @@ -273,7 +231,7 @@ describe("tests users store with vuex", () => { await serviceOfUsers.getUsers('dev') store.dispatch('users/updateSelectedUser', editedUser) - await serviceOfUsers.saveUpdatedDataUser(2) + await serviceOfUsers.updateUser() const usersWithService = store.getters['users/usersWithService'] const userAfterUpdating = usersWithService.find(user => user.id === 3) diff --git a/users-manage/tests/views/3_organisms/Services/EditServiceCard.test.js b/users-manage/tests/views/3_organisms/Services/EditServiceCard.test.js index a0b6c4e..d220c7b 100644 --- a/users-manage/tests/views/3_organisms/Services/EditServiceCard.test.js +++ b/users-manage/tests/views/3_organisms/Services/EditServiceCard.test.js @@ -6,6 +6,7 @@ import axios from "axios"; import {store as services} from "@/store/modules/services" import AdapterOfServices from '@adapters/adapterOfServices/Services' import ServiceOfServices from '@services/serviceOfServices/Services.js' +import {defaultServices, resServices} from "@mocks/services" config.showDeprecationWarnings = false @@ -20,39 +21,6 @@ describe("tests EditServiceCard component", () => { }, }) - const defaultServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "site_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - - const resServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "device_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - - axios.get.mockResolvedValue({ data: defaultServices, }) @@ -71,7 +39,9 @@ describe("tests EditServiceCard component", () => { const wrapper = mount(EditServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -97,7 +67,9 @@ describe("tests EditServiceCard component", () => { const wrapper = mount(EditServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -118,7 +90,9 @@ describe("tests EditServiceCard component", () => { const wrapper = mount(EditServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -128,13 +102,13 @@ describe("tests EditServiceCard component", () => { const selectedService = store.getters['services/selectedService'] - expect(selectedService.is_online).toEqual(true) + expect(selectedService.isOnline).toEqual(true) - wrapper.vm.editData({key: 'is_online', value: false}) + wrapper.vm.editData({key: 'isOnline', value: false}) const selectedServiceAfterEditing = store.getters['services/selectedService'] - expect(selectedServiceAfterEditing.is_online).toEqual(false) + expect(selectedServiceAfterEditing.isOnline).toEqual(false) }) test("Set isSaveData for selected service in EditServiceCard", async () => { @@ -143,7 +117,9 @@ describe("tests EditServiceCard component", () => { const wrapper = mount(EditServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, diff --git a/users-manage/tests/views/3_organisms/Services/ServiceCard.test.js b/users-manage/tests/views/3_organisms/Services/ServiceCard.test.js index f46c2a2..0642f9c 100644 --- a/users-manage/tests/views/3_organisms/Services/ServiceCard.test.js +++ b/users-manage/tests/views/3_organisms/Services/ServiceCard.test.js @@ -10,10 +10,10 @@ import ServiceOfServices from '@services/serviceOfServices/Services.js' import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' import CaseOfUsersInService from '@useCases/CaseOfUsersInService.js' +import {defaultServices, resServices} from "@mocks/services" vi.mock('axios') - describe("tests Service Card component", () => { const store = createStore({ plugins: [], @@ -23,38 +23,6 @@ describe("tests Service Card component", () => { }, }) - const defaultServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "site_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - - const resServices = [ - { - "id": 1, - "createdAt": "2024-03-06T17:31:31.948355541+03:00", - "updatedAt": "2024-03-06T17:31:31.948355541+03:00", - "deletedAt": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxyIp": "172.25.78.153", - "deviceIp": "https://jsonplaceholder.typicode.com/", - "internetUri": "localhost", - "description": "localhost", - "isOnline": true - }, - ] - axios.get.mockResolvedValue({ data: defaultServices, }) @@ -76,7 +44,9 @@ describe("tests Service Card component", () => { test('Service Card mounted with vuex', async () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -105,7 +75,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -130,7 +102,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -160,7 +134,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -184,7 +160,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, @@ -228,7 +206,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { caseOfUsersInService @@ -261,7 +241,9 @@ describe("tests Service Card component", () => { const wrapper = mount(ServiceCard, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, diff --git a/users-manage/tests/views/3_organisms/Services/ServicesList.test.js b/users-manage/tests/views/3_organisms/Services/ServicesList.test.js index 653b230..dff1741 100644 --- a/users-manage/tests/views/3_organisms/Services/ServicesList.test.js +++ b/users-manage/tests/views/3_organisms/Services/ServicesList.test.js @@ -11,10 +11,10 @@ import ServiceOfServices from '@services/serviceOfServices/Services.js' import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' import CaseOfUsersInService from '@useCases/CaseOfUsersInService.js' +import {defaultServices, resServices} from "@mocks/services" vi.mock('axios') - describe("tests Services List component", () => { const store = createStore({ plugins: [], @@ -24,90 +24,6 @@ describe("tests Services List component", () => { }, }) - const defaultServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "site_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - { - "id": 2, - "created_at": "2024-03-07T11:43:51.026265459+03:00", - "updated_at": "2024-03-07T13:35:12.506368972+03:00", - "deleted_at": null, - "name": "new 2", - "port": 4548, - "proxy_ip": "172.25.78.151", - "site_ip": "172.25.78.151", - "internet_uri": "", - "description": "new site 2", - "is_online": true - }, - { - "id": 3, - "created_at": "2024-03-07T11:43:51.027148541+03:00", - "updated_at": "2024-03-07T13:35:24.919273428+03:00", - "deleted_at": null, - "name": "new 3", - "port": 2527, - "proxy_ip": "172.25.78.151", - "site_ip": "172.25.78.151", - "internet_uri": "", - "description": "new site 3...", - "is_online": true - } - ] - - const resServices = [ - { - "id": 1, - "createdAt": "2024-03-06T17:31:31.948355541+03:00", - "updatedAt": "2024-03-06T17:31:31.948355541+03:00", - "deletedAt": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxyIp": "172.25.78.153", - "deviceIp": "https://jsonplaceholder.typicode.com/", - "internetUri": "localhost", - "description": "localhost", - "isOnline": true - }, - { - "id": 2, - "createdAt": "2024-03-07T11:43:51.026265459+03:00", - "updatedAt": "2024-03-07T13:35:12.506368972+03:00", - "deletedAt": null, - "name": "new 2", - "port": 4548, - "proxyIp": "172.25.78.151", - "deviceIp": "172.25.78.151", - "internetUri": "", - "description": "new site 2", - "isOnline": true - }, - { - "id": 3, - "createdAt": "2024-03-07T11:43:51.027148541+03:00", - "updatedAt": "2024-03-07T13:35:24.919273428+03:00", - "deletedAt": null, - "name": "new 3", - "port": 2527, - "proxyIp": "172.25.78.151", - "deviceIp": "172.25.78.151", - "internetUri": "", - "description": "new site 3...", - "isOnline": true - } - ] - axios.get.mockResolvedValue({ data: defaultServices, }) @@ -124,7 +40,9 @@ describe("tests Services List component", () => { test('Services List mounted with vuex', async () => { const wrapper = mount(ServicesList, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfServices, diff --git a/users-manage/tests/views/3_organisms/Users/UsersManager.test.js b/users-manage/tests/views/3_organisms/Users/UsersManager.test.js index e3db136..f31e2e6 100644 --- a/users-manage/tests/views/3_organisms/Users/UsersManager.test.js +++ b/users-manage/tests/views/3_organisms/Users/UsersManager.test.js @@ -60,7 +60,9 @@ describe("tests UsersManager component", () => { test('UsersManager mounted with vuex', async () => { const wrapper = mount(UsersManager, { global: { - plugins: [store], + mocks: { + $store: store + }, props: { serviceOfUsers } @@ -80,7 +82,9 @@ describe("tests UsersManager component", () => { const wrapper = mount(UsersManager, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -106,7 +110,9 @@ describe("tests UsersManager component", () => { const wrapper = mount(UsersManager, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers, @@ -134,7 +140,9 @@ describe("tests UsersManager component", () => { const wrapper = mount(UsersManager, { global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers, diff --git a/users-manage/tests/views/3_organisms/Users/UsersManagerSelection.test.js b/users-manage/tests/views/3_organisms/Users/UsersManagerSelection.test.js index d045b57..9d3d93d 100644 --- a/users-manage/tests/views/3_organisms/Users/UsersManagerSelection.test.js +++ b/users-manage/tests/views/3_organisms/Users/UsersManagerSelection.test.js @@ -11,52 +11,10 @@ import ServiceOfServices from '@services/serviceOfServices/Services.js' import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' import CaseOfUsersInService from '@useCases/CaseOfUsersInService.js' +import {defaultUsers} from "@mocks/users" vi.mock('axios') -const defaultUsers = [ - { - "id": 1, - "serviceId": [1, 3], - "firstName": "Leanne 1", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 2, - "serviceId": [1], - "firstName": "Leanne 2", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 3, - "serviceId": [2, 3], - "firstName": "Leanne 3", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 4, - "serviceId": [3], - "firstName": "Leanne 4", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 5, - "serviceId": [4, 5], - "firstName": "Leanne 5", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, -] - describe("tests UsersForSelection component", () => { const store = createStore({ @@ -94,7 +52,9 @@ describe("tests UsersForSelection component", () => { const wrapper = mount(UsersSelection, { global: { - plugins: [store], + mocks: { + $store: store + }, props: { caseOfUsersInService } @@ -139,7 +99,9 @@ describe("tests UsersForSelection component", () => { const wrapper = mount(UsersSelection, { global: { - plugins: [store] + mocks: { + $store: store + } }, components: {VTabulator}, props: { diff --git a/users-manage/tests/views/3_organisms/Users/UsersManagerTable.test.js b/users-manage/tests/views/3_organisms/Users/UsersManagerTable.test.js index 248608e..ff402e1 100644 --- a/users-manage/tests/views/3_organisms/Users/UsersManagerTable.test.js +++ b/users-manage/tests/views/3_organisms/Users/UsersManagerTable.test.js @@ -11,52 +11,10 @@ import ServiceOfServices from '@services/serviceOfServices/Services.js' import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' import CaseOfUsersInService from '@useCases/CaseOfUsersInService.js' +import {defaultUsers} from "@mocks/users" vi.mock('axios') -const defaultUsers = [ - { - "id": 1, - "serviceId": [1, 3], - "firstName": "Leanne 1", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 2, - "serviceId": [1], - "firstName": "Leanne 2", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 3, - "serviceId": [2, 3], - "firstName": "Leanne 3", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 4, - "serviceId": [3], - "firstName": "Leanne 4", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 5, - "serviceId": [4, 5], - "firstName": "Leanne 5", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, -] - describe("tests UsersManagerUsersTable component", () => { const store = createStore({ @@ -94,7 +52,9 @@ describe("tests UsersManagerUsersTable component", () => { const wrapper = mount(UsersTable, { global: { - plugins: [store], + mocks: { + $store: store + }, props: { serviceOfUsers } @@ -119,7 +79,9 @@ describe("tests UsersManagerUsersTable component", () => { const wrapper = mount(UsersTable, { global: { - plugins: [store] + mocks: { + $store: store + } }, components: {VTabulator}, props: { @@ -180,7 +142,9 @@ describe("tests UsersManagerUsersTable component", () => { const wrapper = mount(UsersTable, { global: { - plugins: [store] + mocks: { + $store: store + } }, components: {VTabulator}, props: { @@ -201,24 +165,19 @@ describe("tests UsersManagerUsersTable component", () => { expect(forDeleteUserFromService).not.toBeNull() expect(userStatus).toBe('inactive') - wrapper.vm.deleteUser(forDeleteUser) + await wrapper.vm.deleteUser(forDeleteUser) - setTimeout(() => { + const userStatusAfterDelete = store.getters['users/userStatus'] + const usersWithServicesAfterDelete = store.getters['users/usersWithService'] + const usersWithoutService = store.getters['users/usersWithoutService'] - const userStatusAfterDelete = store.getters['users/userStatus'] - const usersWithServicesAfterDelete = store.getters['users/usersWithService'] - const usersWithoutService = store.getters['users/usersWithoutService'] - - const userFromServiceAfterDelete = usersWithServicesAfterDelete.find(user => user.id === forDeleteUser.id) - const userWithoutServiceAfterDelete = usersWithoutService.find(user => user.id === forDeleteUser.id) - - expect(userStatusAfterDelete).toBe('select') - expect(userFromServiceAfterDelete).toBeUndefined() - expect(userWithoutServiceAfterDelete).toBeDefined() - expect(userWithoutServiceAfterDelete.id).toEqual(forDeleteUser.id) - - }, 100) + const userFromServiceAfterDelete = usersWithServicesAfterDelete.find(user => user.id === forDeleteUser.id) + const userWithoutServiceAfterDelete = usersWithoutService.find(user => user.id === forDeleteUser.id) + expect(userStatusAfterDelete).toBe('select') + expect(userFromServiceAfterDelete).toBeUndefined() + expect(userWithoutServiceAfterDelete).toBeDefined() + expect(userWithoutServiceAfterDelete.id).toEqual(forDeleteUser.id) }) }) diff --git a/users-manage/tests/views/3_organisms/Users/UsersManagerUserEditor.test.js b/users-manage/tests/views/3_organisms/Users/UsersManagerUserEditor.test.js index 660625d..f31a989 100644 --- a/users-manage/tests/views/3_organisms/Users/UsersManagerUserEditor.test.js +++ b/users-manage/tests/views/3_organisms/Users/UsersManagerUserEditor.test.js @@ -7,52 +7,11 @@ import {store as users} from "@/store/modules/users" import {store as services} from "@/store/modules/services" import AdapterOfUsers from '@adapters/adapterOfUsers/Users' import ServiceOfUsers from '@services/serviceOfUsers/Users.js' +import {defaultUsers} from "@mocks/users" +import {resServices} from "@mocks/services" vi.mock('axios') -const defaultUsers = [ - { - "id": 1, - "serviceId": [1, 3], - "firstName": "Leanne 1", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 2, - "serviceId": [1], - "firstName": "Leanne 2", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 3, - "serviceId": [2, 3], - "firstName": "Leanne 3", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 4, - "serviceId": [3], - "firstName": "Leanne 4", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, - { - "id": 5, - "serviceId": [4, 5], - "firstName": "Leanne 5", - "lastName": "Graham", - "email": "test@mail.ru", - "role": "admin", - }, -] - describe("tests UserEditor component", () => { const store = createStore({ plugins: [], @@ -78,7 +37,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -95,7 +56,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -116,22 +79,6 @@ describe("tests UserEditor component", () => { test('Saving after editing selected user in UserEditor', async () => { - const resServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "device_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - const editedUser = { "id": 3, "serviceId": [1, 3], @@ -149,7 +96,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -176,22 +125,6 @@ describe("tests UserEditor component", () => { test('Saving after creating new user in UserEditor', async () => { - const resServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "device_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - const newUser = { "id": -1, "serviceId": [], @@ -209,7 +142,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -249,7 +184,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -271,7 +208,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers @@ -298,7 +237,9 @@ describe("tests UserEditor component", () => { const wrapper = mount(UserEditor, { shallow: true, global: { - plugins: [store] + mocks: { + $store: store + } }, props: { serviceOfUsers diff --git a/users-manage/tests/views/5_pages/SitesList.test.js b/users-manage/tests/views/5_pages/SitesList.test.js index 21b592f..5cc9f19 100644 --- a/users-manage/tests/views/5_pages/SitesList.test.js +++ b/users-manage/tests/views/5_pages/SitesList.test.js @@ -7,10 +7,10 @@ import {store as services} from "@/store/modules/services" import {store as users} from "@/store/modules/users" import AdapterOfServices from '@adapters/adapterOfServices/Services' import ServiceOfServices from '@services/serviceOfServices/Services.js' +import {defaultServices, resServices} from "@mocks/services" vi.mock('axios') - describe("tests Services Manager Page component", () => { const store = createStore({ plugins: [], @@ -20,38 +20,6 @@ describe("tests Services Manager Page component", () => { }, }) - const defaultServices = [ - { - "id": 1, - "created_at": "2024-03-06T17:31:31.948355541+03:00", - "updated_at": "2024-03-06T17:31:31.948355541+03:00", - "deleted_at": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxy_ip": "172.25.78.153", - "site_ip": "https://jsonplaceholder.typicode.com/", - "internet_uri": "localhost", - "description": "localhost", - "is_online": true - }, - ] - - const resServices = [ - { - "id": 1, - "createdAt": "2024-03-06T17:31:31.948355541+03:00", - "updatedAt": "2024-03-06T17:31:31.948355541+03:00", - "deletedAt": null, - "name": "jsonplaceholder.typicode.com", - "port": 9965, - "proxyIp": "172.25.78.153", - "deviceIp": "https://jsonplaceholder.typicode.com/", - "internetUri": "localhost", - "description": "localhost", - "isOnline": true - }, - ] - axios.get.mockResolvedValue({ data: defaultServices, }) @@ -62,7 +30,9 @@ describe("tests Services Manager Page component", () => { test('Services Manager Page mounted with vuex', async () => { const wrapper = mount(Services, { global: { - plugins: [store] + mocks: { + $store: store + } } })