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,67 +1,232 @@
import {describe, expect, test, 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 {createStore} from 'vuex'
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";
class AdapterOfServices {
constructor() {
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
}
]
async getServices() {
return [{id: 1, name: 'service1'}, {id: 2, name: 'service2'}]
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
},
{
"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",
"device_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",
"device_ip": "172.25.78.151",
"internet_uri": "",
"description": "new site 3...",
"is_online": true
}
}
const services = {
namespaced: true,
state: {
servicesList: [],
},
mutations: {
setServicesList(state, services) {
state.servicesList = services
},
},
getters: {
servicesList: state => {
return state.servicesList
}
},
actions: {
resetStore({state}) {
state.servicesList = []
},
saveServices({commit}, services) {
commit('setServicesList', services)
}
},
}
describe('tests for ServiceOfServices', () => {
const adapterOfServices = new AdapterOfServices()
]
describe("tests services of services", () => {
const store = createStore({
plugins: [],
modules: {
services,
services
},
})
beforeEach( async() => {
await store.dispatch('services/resetStore')
beforeEach(() => {
store.dispatch('services/resetStore')
})
test('init', () => {
const serviceOfServices = new ServiceOfServices(adapterOfServices, store)
const adapterOfServices = new AdapterOfServices(import.meta.env.VITE_API_ADDR)
const serviceOfServices = new ServiceOfServices(adapterOfServices, store)
expect(serviceOfServices).toBeDefined()
axios.get.mockResolvedValue({
data: defaultServices,
})
test('test of fetchServicesList', async () => {
const serviceOfServices = new ServiceOfServices(adapterOfServices, store)
test('Upload services', async () => {
await serviceOfServices.fetchServices()
const services = store.getters['services/services']
const usersList = store.getters['services/servicesList']
expect(services).toEqual([]) // empty services array of store
const uploadServices = await serviceOfServices.fetchServices()
expect(uploadServices).toEqual(resServices) // full services array of store
expect(usersList).toEqual([{id: 1, name: 'service1'}, {id: 2, name: 'service2'}])
})
test('Added new service layout to services', async () => {
const expectedserviceData = {"port": "", "name": "", id: -1}
const newService = await serviceOfServices.addNewServiceLayout()
expect({newService}).toEqual({newService: expectedserviceData})
})
test('Added new service to array services of service with func addedService', 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
}
const updatedServices = addedService(newService, resServices)
expect(updatedServices[0].name).toEqual('test add new service')
expect(updatedServices[0].description).toEqual('test add new service description')
expect(updatedServices[0].port).toEqual(2534)
})
test('Set isSaveData - if need save service', async () => {
const isSaveData = false
expect(isSaveData).toEqual(false) // default value is false
const isSaveDataChanged = await serviceOfServices.setIsSaveServices(true)
expect(isSaveDataChanged).toEqual(true) // if need save service - true
})
test('Saving service after editing with func updateService', async () => {
const selectedEditedService =
{
"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 test name",
"port": 5555,
"proxy_ip": "172.25.78.151",
"device_ip": "172.25.78.151",
"internet_uri": "",
"description": "edited description field",
"is_online": true
}
const updatedServices = updatedService(selectedEditedService, resServices)
const editedService = updatedServices.find(service => service.id === 3)
expect(editedService.name).toEqual('edited test name')
expect(editedService.port).toEqual(5555)
expect(editedService.description).toEqual('edited description field')
})
test('Updated services after deleting new service with only layout with func removedNewService', async () => {
store.commit('services/setServices', resServices)
const newService = await serviceOfServices.addNewServiceLayout()
const servicesWithNewServiceLayout = addedService(newService, resServices)
const forDeleteService = servicesWithNewServiceLayout.find(service => service.id === -1)
expect(forDeleteService).toBeDefined() // before delete service
const updatedServices = removedNewService(servicesWithNewServiceLayout)
const deletedServiceStore = updatedServices.find(service => service.id === -1)
expect(deletedServiceStore).toBeUndefined() // after delete service
})
test('Updated services after deleting selected service with func deletedService', async () => {
const deleteServiceId = 3
const forDeleteService = resServices.find(service => service.id === 3)
expect(forDeleteService).toBeDefined() // before delete service
const updatedServices = deletedService(deleteServiceId, resServices)
const deletedServiceStore = updatedServices.find(service => service.id === 3)
expect(deletedServiceStore).toBeUndefined() // after delete service
})
})

View File

@@ -1,36 +1,245 @@
import {describe, expect, test, 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 {adapterOfUsers, store} from './MockData.js'
import {appUser} from '@mocks/users.js'
import {
addedUser,
getUserById,
usersWithThisService,
usersWithoutThisService,
addServiceIdToUser,
deleteServiceIdFromUser,
updatedUser,
removedNewUser,
deletedUser
} from '@services/serviceOfUsers/helpers.js'
import { createStore } from 'vuex'
import {store as users} from "@/store/modules/users"
import axios from "axios";
describe('test for ServiceOfUsers', () => {
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: [],
modules: {
users
},
})
beforeEach(() => {
store.dispatch('users/resetStore')
})
const adapterOfUsers = new AdapterOfUsers(import.meta.env.VITE_API_ADDR)
const serviceOfUsers = new ServiceOfUsers(adapterOfUsers, store)
beforeEach( async() => {
await store.dispatch('users/resetStore')
axios.get.mockResolvedValue({
data: defaultUsers,
})
test('init', () => {
expect(serviceOfUsers).toBeDefined()
test('Upload users by selected service', async () => {
const uploadUsers = await serviceOfUsers.getUsersByService(1, 'dev')
const expectedUsers = defaultUsers.filter(user => user.serviceId.includes(1))
expect(expectedUsers).toEqual(uploadUsers) // users array selected service
})
test('saveSiteUsers', async () => {
await serviceOfUsers.saveSiteUsers([appUser])
const storeUsers = store.getters['users/siteUsers']
expect(storeUsers).toEqual([appUser])
test('Upload users without selected service', async () => {
const uploadUsers = usersWithoutThisService(1, defaultUsers)
const expectedUsers = defaultUsers.filter(user => !user.serviceId.includes(1))
expect(expectedUsers).toEqual(uploadUsers) // users array without selected service
})
test('saveUsersWithoutSite', async () => {
await serviceOfUsers.saveUsersWithoutSite([appUser])
const storeUsers = store.getters['users/usersWithoutSite']
expect(storeUsers).toEqual([appUser])
test('Added new user layout to user editor', async () => {
const newUser = {id: -1, firstName: '',lastName: '', role: '', email: '', password: '', serviceId: []}
const expectUser = await serviceOfUsers.createNewUser()
expect({newUser: expectUser}).toEqual({newUser})
})
test('fetchUsersByService', async () => {
const serviceId = 1
await serviceOfUsers.fetchUsersByService(serviceId)
const storeUsers = store.getters['users/siteUsers']
expect(storeUsers).toEqual([appUser])
test('Added user to array users of selected service', async () => {
const newUser = {
"id": 6,
"serviceId": [4, 5],
"first_name": "Leanne 5",
"last_name": "Graham",
"email": "test@mail.ru",
"role": "admin",
}
const updatedUsers = addedUser(newUser, defaultUsers)
const addedNewUser = updatedUsers.find(user => user.id === 6)
expect(addedNewUser).toEqual(newUser)
})
test('Get user by id from array users', async () => {
const selectedIdUser = 3
const selectedUser = getUserById(selectedIdUser, defaultUsers)
expect(selectedUser.id).toEqual(selectedIdUser)
})
test('Filtered users of selected service', async () => {
const selectedIdService = 3
const usersWithSelectedService = usersWithThisService(selectedIdService, defaultUsers)
expect(usersWithSelectedService).toHaveLength(3)
usersWithSelectedService.map((user) => {
return expect(user.serviceId.includes(selectedIdService)).toBe(true)
})
})
test('Filtered users of not selected service', async () => {
const selectedIdService = 3
const usersWithSelectedService = usersWithoutThisService(selectedIdService, defaultUsers)
expect(usersWithSelectedService).toHaveLength(2)
usersWithSelectedService.map((user) => {
return expect(!user.serviceId.includes(selectedIdService)).toBe(true)
})
})
test('Added selected service to user with func addServiceIdToUser', async () => {
const updatedUsers = addServiceIdToUser(4, 2, defaultUsers)
const selectedUserWithoutService = defaultUsers.find(user => user.id === 4).serviceId.includes(2)
const selectedUserWithService = updatedUsers.find(user => user.id === 4).serviceId.includes(2)
expect(selectedUserWithoutService).toBe(false)
expect(selectedUserWithService).toBe(true)
})
test('Deleted user from array users of selected service with func deleteServiceIdFromUser', async () => {
const updatedUsers = deleteServiceIdFromUser(3, 2, defaultUsers)
const selectedUserWithoutService = defaultUsers.find(user => user.id === 3).serviceId.includes(2)
const selectedUserWithService = updatedUsers.find(user => user.id === 3).serviceId.includes(2)
expect(selectedUserWithoutService).toBe(true)
expect(selectedUserWithService).toBe(false)
})
test('Edited user updated in array users', async () => {
const editerUser =
{
"id": 3,
"serviceId": [2, 3],
"first_name": "Leanne 3 updated", // edited field
"last_name": "Graham updated", // edited field
"email": "test@mail.ru",
"role": "admin",
}
const beforeEditUser = defaultUsers.find(user => user.id === 3)
expect(beforeEditUser.first_name).not.toEqual('Leanne 3 updated') // check that user was not edited
expect(beforeEditUser.last_name).not.toEqual('Graham updated') // check that user was not edited
const updatedUsers = updatedUser(editerUser, defaultUsers)
const getEditedUser = updatedUsers.find(user => user.id === 3)
expect(getEditedUser.first_name).toEqual('Leanne 3 updated') // check that user was edited
expect(getEditedUser.last_name).toEqual('Graham updated') // check that user was edited
})
test('Removed new user layout from array users', async () => {
const newUser = {id: -1, first_name: '',last_name: '', role: '', email: '', password: '', serviceId: []}
const updatedUsers = addedUser(newUser, defaultUsers)
const beforeDeleteUser = updatedUsers.find(user => user.id === -1)
expect(beforeDeleteUser).toBeDefined() // before delete user
const afterDeleteUser = removedNewUser(updatedUsers)
const deletedServiceStore = afterDeleteUser.find(service => service.id === -1)
expect(deletedServiceStore).toBeUndefined() // after delete user
})
test('Updated users after deleting selected user with func deletedUser', async () => {
const deleteUserId = 3
const forDeleteUser = defaultUsers.find(user => user.id === 3)
expect(forDeleteUser).toBeDefined() // before delete user
const updatedUsers = deletedUser(deleteUserId, defaultUsers)
const afterDeletingUser = updatedUsers.find(user => user.id === 3)
expect(afterDeletingUser).toBeUndefined() // after delete user
})
})