movied users from old project to new project anover repository, updated tests, cleared warns and errors in tests

This commit is contained in:
2024-04-01 15:26:46 +03:00
parent 10114ff67e
commit 28c13c00ec
50 changed files with 3798 additions and 776 deletions

View File

@@ -1,6 +1,7 @@
import { expect, test, describe, vi, beforeEach} from "vitest"
import {expect, test, describe, vi, beforeEach} from "vitest"
import AdapterOfServices from '@adapters/adapterOfServices/Services'
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";
@@ -125,7 +126,7 @@ describe("tests services store with vuex", () => {
})
test('Added new service layout to services of store', async () => {
const expectedSiteData = {"port": "", "name": "", id: -1}
const expectedserviceData = {"port": "", "name": "", id: -1}
await serviceOfServices.addNewServiceLayout()
@@ -138,11 +139,38 @@ describe("tests services store with vuex", () => {
services
}
).toEqual({
selectedService: expectedSiteData,
services: [expectedSiteData]
selectedService: expectedserviceData,
services: [expectedserviceData]
})
})
test('Added new service to services of store', async () => {
const newService = {
id: 4,
created_at: "2024-03-07T11:43:51.027148541+03:00",
updated_at: "2024-03-07T13:35:24.919273428+03:00",
deleted_at: null,
name: 'test add new service',
port: 2534,
device_ip: '172.25.78.151',
proxy_ip: '172.25.78.151',
internet_uri: '',
description: 'test add new service description',
is_online: true
}
store.commit('services/setServices', resServices)
const updatedServices = addedService(newService, store.getters['services/services'])
store.commit('services/setServices', updatedServices)
const services = store.getters['services/services']
expect(services[0].name).toEqual('test add new service')
expect(services[0].description).toEqual('test add new service description')
expect(services[0].port).toEqual(2534)
})
test('Selected service - for edit fields values in this service', async () => {
const editedService =
@@ -168,6 +196,20 @@ describe("tests services store with vuex", () => {
})
test('Set isSaveData - if need save service', async () => {
const isSaveData = store.getters['services/isSaveData']
expect(isSaveData).toEqual(false) // default value is false
await serviceOfServices.setIsSaveServices(true)
const isSaveDataChanged = store.getters['services/isSaveData']
expect(isSaveDataChanged).toEqual(true) // if need save service - true
})
test('Edited fields values in selected service of store', async () => {
const selectedForEditService =
@@ -195,56 +237,168 @@ describe("tests services store with vuex", () => {
const selectedService = store.getters['services/selectedService']
// console.log('Edited fields 4 test', selectedService)
expect(selectedService.name).toEqual('edited test name')
expect(selectedService.port).toEqual(5555)
expect(selectedService.description).toEqual('edited description field')
})
// test("test uploadAndSelectService function", async () => {
// const mockData = [
// {
// "id": 1,
// "created_at": "2024-02-22T17:08:37.715772388+03:00",
// "updated_at": "2024-02-26T14:11:38.64094899+03:00",
// "deleted_at": null,
// "name": "jsonplaceholder.typicode.com",
// "port": 9965,
// "proxy_ip": "172.25.78.153",
// "site_ip": "172.25.78.153",
// "internet_uri": "localhost",
// "description": "localhost",
// "is_online": true
// }
// ]
test('Updated services in store after editing selected service', async () => {
const editedService =
{
"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": "edited and updated test service",
"port": 3436,
"proxy_ip": "172.25.78.151",
"device_ip": "172.25.78.151",
"internet_uri": "",
"description": "edited and updated test service description",
"is_online": true
}
store.commit('services/setServices', resServices)
// axios.get.mockResolvedValue({
// data: mockData,
// })
const defaultServices = store.getters['services/services']
const forEditService = defaultServices.find(service => service.id === 3)
// await store.dispatch('services/uploadSites')
// store.dispatch('services/uploadAndSelectService', 1)
expect(forEditService.name).toEqual('new 3') // default value
expect(forEditService.description).toEqual('new site 3...') // default value
expect(forEditService.port).toEqual(2527) // default value
// const selectedSite = store.getters['services/selectedSite']
// const selectedSiteState = store.getters['services/selectedSiteState']
const updatedServices = updatedService(editedService, defaultServices)
store.commit('services/setServices', updatedServices)
// expect(selectedSite).toEqual({
// "id": 1,
// "created_at": "2024-02-22T17:08:37.715772388+03:00",
// "updated_at": "2024-02-26T14:11:38.64094899+03:00",
// "deleted_at": null,
// "name": "jsonplaceholder.typicode.com",
// "port": 9965,
// "proxy_ip": "172.25.78.153",
// "device_ip": "172.25.78.153",
// "internet_uri": "localhost",
// "description": "localhost",
// "is_online": true
// })
// expect(selectedSiteState).toEqual('active')
// })
const services = store.getters['services/services']
const editedServiceStore = services.find(service => service.id === 3)
expect(editedServiceStore.name).toEqual('edited and updated test service')
expect(editedServiceStore.description).toEqual('edited and updated test service description')
expect(editedServiceStore.port).toEqual(3436)
})
test('Canceled selected service in store', async () => {
const selectedForEditService =
{
"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",
"device_ip": "172.25.78.151",
"internet_uri": "",
"description": "new site 3...",
"is_online": true
}
await serviceOfServices.selectService(selectedForEditService)
const selectedService = store.getters['services/selectedService']
expect(selectedService.name).not.toBe(null) // Service is selected
expect(selectedService.id).toEqual(3) // Service is selected
expect(selectedService.name).toEqual('new 3') // Service is selected
await serviceOfServices.cancelSelectedService(3)
const cancelSelectedService = store.getters['services/selectedService']
expect(cancelSelectedService).toBe(null) // Canceled selected Service
})
test('Updated services in store after deleting new service with only layout', async () => {
store.commit('services/setServices', resServices)
await serviceOfServices.addNewServiceLayout()
const servicesWithNewServiceLayout = store.getters['services/services']
const forDeleteService = servicesWithNewServiceLayout.find(service => service.id === -1)
expect(forDeleteService).toBeDefined() // before delete service
const updatedServices = removedNewService(servicesWithNewServiceLayout)
store.commit('services/setServices', updatedServices)
const services = store.getters['services/services']
const deletedServiceStore = services.find(service => service.id === -1)
expect(deletedServiceStore).toBeUndefined() // after delete service
})
test('Updated services in store after deleting selected service', async () => {
const deleteServiceId = 3
store.commit('services/setServices', resServices)
const defaultServices = store.getters['services/services']
const forDeleteService = defaultServices.find(service => service.id === 3)
expect(forDeleteService).toBeDefined() // before delete service
const updatedServices = deletedService(deleteServiceId, defaultServices)
store.commit('services/setServices', updatedServices)
const services = store.getters['services/services']
const deletedServiceStore = services.find(service => service.id === 3)
expect(deletedServiceStore).toBeUndefined() // after delete service
})
test('Reset store', async () => {
const selectedForEditService =
{
"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",
"device_ip": "172.25.78.151",
"internet_uri": "",
"description": "new site 3...",
"is_online": true
}
await serviceOfServices.selectService(selectedForEditService)
const selectedService = store.getters['services/selectedService']
expect(selectedService.name).not.toBe(null) // Service is selected
expect(selectedService.id).toEqual(3) // Service is selected
expect(selectedService.name).toEqual('new 3') // Service is selected
await serviceOfServices.addNewServiceLayout()
const services = store.getters['services/services']
expect(services.name).not.toStrictEqual([]) // Not empty services
expect(services[0].id).toEqual(-1) // New Service
await serviceOfServices.resetStore()
const resetSelectedService = store.getters['services/selectedService']
const resetServices = store.getters['services/services']
// console.log('Reset store 11 test', resetSelectedService)
expect(resetSelectedService).toBe(null) // After reset store
expect(resetServices).toStrictEqual([]) // After reset store
})
})

View File

@@ -1,12 +1,56 @@
import { expect, test, describe, vi, beforeEach} from "vitest";
import {expect, test, describe, vi, beforeEach} from "vitest"
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";
vi.mock('axios')
describe("tests services store with vuex", () => {
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: [],
modules: {
@@ -18,37 +62,270 @@ describe("tests services store with vuex", () => {
store.dispatch('users/resetStore')
})
test('test fetchUsersList function', async () => {
const mockData = [
{
"id": 1,
"first_name": "Leanne",
"last_name": "Graham",
"email": "test@mail.ru",
"role": "admin",
"is_active": true
}
]
const adapterOfUsers = new AdapterOfUsers(import.meta.env.VITE_API_ADDR)
const serviceOfUsers = new ServiceOfUsers(adapterOfUsers, store)
axios.get.mockResolvedValue({
data: mockData,
axios.get.mockResolvedValue({
data: defaultUsers,
})
test('Upload Users', async () => {
const users = store.getters['users/users']
expect(users).toEqual([]) // empty users array of store
await serviceOfUsers.getUsers('dev')
const uploadUsers = store.getters['users/users']
expect(uploadUsers).not.toBe([]) // full services array of store
expect(uploadUsers.length).toBeGreaterThan(0) // full services array of store
})
test('Upload users with selected service to store', async () => {
await serviceOfUsers.getUsersByService(1, 'dev')
const expectedUsers = defaultUsers.filter(user => user.serviceId.includes(1))
const usersWithService = store.getters['users/usersWithService']
expect(expectedUsers).toEqual(usersWithService) // users array selected service
})
test('Upload users withhout selected service to store', async () => {
await serviceOfUsers.getUsers('dev')
await serviceOfUsers.getUsersWithoutService(1)
const usersWithoutService = store.getters['users/usersWithoutService']
usersWithoutService.map(user => {
expect(user.serviceId).not.toBe(1)
})
})
const expectedData = [
{
"id": 1,
"first_name": "Leanne",
"last_name": "Graham",
"email": "test@mail.ru",
"role": "admin",
"is_active": true
}
]
test('Created and added new user layout to selected user in store', async () => {
await store.dispatch('users/fetchUsersList', {siteId: 1, mode: "prod"})
const sites = store.getters['users/usersList']
const newUser = await serviceOfUsers.createNewUser()
const newUserStore = store.getters['users/selectedUser']
expect(newUserStore.id).toBe(-1) // new user layout check id
expect(newUserStore).toEqual(newUser) // new user layout equal
})
test('Get selected user from store', async () => {
await serviceOfUsers.createNewUser()
const selectedUser = await serviceOfUsers.getSelectedUser()
const selectedUserStore = store.getters['users/selectedUser']
expect(selectedUserStore).toEqual(selectedUser)
})
test('Set selected user in store', async () => {
await serviceOfUsers.getUsers('dev')
await serviceOfUsers.createNewUser()
const selectedNewUserStore = store.getters['users/selectedUser']
expect(selectedNewUserStore.id).toBe(-1) // new user layout check id
const updatedUser = await serviceOfUsers.setSelectedUser(3)
const updatedUserStore = store.getters['users/selectedUser']
expect(updatedUserStore.id).toBe(3) // updated user check id
expect(updatedUserStore).toEqual(updatedUser)
})
test('Set status user in store', async () => {
const defaultUserStatus = store.getters['users/userStatus']
expect(defaultUserStatus).toBe('inactive')
const updatedUserStatus = await serviceOfUsers.setStatusUser('active')
const updatedUserStatusStore = store.getters['users/userStatus']
expect(updatedUserStatus).toBe('active')
expect(updatedUserStatusStore).toEqual(updatedUserStatus)
})
test('Added user to users with selected service of store', async () => {
await serviceOfUsers.getUsers('dev')
await serviceOfUsers.addUserToService(5, 2)
const usersWithServices = store.getters['users/usersWithService']
// console.log('usersWithServices', usersWithServices)
const userAddedService = usersWithServices.find(user => user.id === 5)
expect(userAddedService).toBeDefined()
expect(userAddedService.serviceId.includes(2)).toBe(true)
})
test('Editing fields values in selected user', async () => {
const forEditUser =
{
"id": 5,
"serviceId": [4, 5],
"firstName": "Leanne 5",
"lastName": "Graham",
"email": "test@mail.ru",
"role": "admin",
}
await serviceOfUsers.getUsers('dev')
const users = store.getters['users/users']
const userBeforeEdit = users.find(user => user.id === 5)
expect(userBeforeEdit).toEqual(forEditUser)
await serviceOfUsers.setSelectedUser(5)
await serviceOfUsers.editUserByService({key: "firstName", value: "Leanne 5 edited"})
await serviceOfUsers.editUserByService({key: "lastName", value: "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
})
test('Deleted user from users with selected service of store', async () => {
await serviceOfUsers.getUsers('dev')
await serviceOfUsers.deleteUserFromService(5, 4)
const usersWithServices = store.getters['users/usersWithService']
const usersWithoutServices = store.getters['users/usersWithoutService']
const userWithService = usersWithServices.find(user => user.id === 5)
const userWithoutService = usersWithoutServices.find(user => user.id === 5)
expect(userWithService).toBeUndefined() // user with service deleted
expect(userWithoutService).toBeDefined() // user without service added
expect(userWithoutService.serviceId.includes(4)).toBe(false) // selected service was deleted from user serviceId
})
test('Saving new user to array users of selected service', async () => {
const newUser =
{
"id": -1,
"serviceId": [],
"firstName": "Leanne 5 New",
"lastName": "Graham New",
"email": "test@mail.ru",
"role": "admin",
}
await serviceOfUsers.getUsers('dev')
store.dispatch('users/updateSelectedUser', newUser)
const users = store.getters['users/users']
const countUsers = users.length
await serviceOfUsers.saveUpdatedDataUser(3)
const usersWithService = store.getters['users/usersWithService']
const newUserAfterAdding = usersWithService.find(user => user.id === countUsers + 1) // Пока не получаем нового юзера с бэка, поэтому задаём id по количеству всех юзеров
expect(newUserAfterAdding).toBeDefined()
expect(newUserAfterAdding.id).toEqual(countUsers + 1)
expect(newUserAfterAdding.firstName).toEqual("Leanne 5 New")
expect(newUserAfterAdding.lastName).toEqual("Graham New")
})
test('Saving edited user to array users of selected service', async () => {
const editedUser =
{
"id": 3,
"serviceId": [2, 3],
"firstName": "Leanne 3 Edited",
"lastName": "Graham Edited",
"email": "test@mail.ru",
"role": "admin",
}
await serviceOfUsers.getUsers('dev')
store.dispatch('users/updateSelectedUser', editedUser)
await serviceOfUsers.saveUpdatedDataUser(2)
const usersWithService = store.getters['users/usersWithService']
const userAfterUpdating = usersWithService.find(user => user.id === 3)
// console.log('userAfterUpdating', userAfterUpdating)
expect(userAfterUpdating).toBeDefined()
expect(userAfterUpdating.id).toEqual(3)
expect(userAfterUpdating.firstName).toEqual("Leanne 3 Edited")
expect(userAfterUpdating.lastName).toEqual("Graham Edited")
})
test('Reset store', async () => {
const selectedUser =
{
"id": 5,
"serviceId": [4, 5],
"firstName": "Leanne 5",
"lastName": "Graham",
"email": "test@mail.ru",
"role": "admin",
}
await serviceOfUsers.getUsers('dev')
await serviceOfUsers.setSelectedUser(5)
await serviceOfUsers.setStatusUser('active')
const selectedUserStore = store.getters['users/selectedUser']
const users = store.getters['users/users']
const userStatus = store.getters['users/userStatus']
expect(selectedUser).toEqual(selectedUserStore) // User is selected
expect(users).not.toStrictEqual([]) // Not empty users
expect(userStatus).toEqual('active') // New user status
await serviceOfUsers.resetStore()
const resetSelectedUser = store.getters['users/selectedUser']
const resetUsers = store.getters['users/users']
const resetUserStatus = store.getters['users/userStatus']
// console.log('Reset store 11 test', resetSelectedService)
expect(resetSelectedUser).toBe(null) // After reset store
expect(resetUsers).toStrictEqual([]) // After reset store
expect(resetUserStatus).toEqual('inactive') // After reset store
expect(sites).toEqual(expectedData)
})
})