movied users from old project to new project anover repository, updated tests, cleared warns and errors in tests
This commit is contained in:
@@ -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
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user