mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-25 20:40:36 +03:00
73 lines
1.8 KiB
TypeScript
73 lines
1.8 KiB
TypeScript
import { type Page } from '@playwright/test';
|
|
|
|
import {
|
|
type IUpdateProfileDTO,
|
|
type IUserInfo,
|
|
type IUserProfile,
|
|
type IUserSignupDTO
|
|
} from '../../src/features/users/backend/types';
|
|
import { BACKEND_URL } from './constants';
|
|
|
|
const dataActiveUsers: IUserInfo[] = [
|
|
{
|
|
id: 1,
|
|
first_name: 'Admin',
|
|
last_name: 'Admin'
|
|
},
|
|
{
|
|
id: 2,
|
|
first_name: 'User',
|
|
last_name: 'User'
|
|
}
|
|
];
|
|
|
|
let dataUserProfile: IUserProfile = {
|
|
id: 1,
|
|
username: 'admin',
|
|
email: 'admin@example.com',
|
|
first_name: 'Admin',
|
|
last_name: 'Admin'
|
|
};
|
|
|
|
export async function setupUsers(page: Page) {
|
|
await page.route(`${BACKEND_URL}/users/api/active-users`, async route => {
|
|
await route.fulfill({ json: dataActiveUsers });
|
|
});
|
|
}
|
|
|
|
export async function setupUserProfile(page: Page) {
|
|
await page.route(`${BACKEND_URL}/users/api/profile`, async route => {
|
|
await route.fulfill({ json: dataUserProfile });
|
|
});
|
|
}
|
|
|
|
export async function setupUserSignup(page: Page) {
|
|
await page.route(`${BACKEND_URL}/users/api/signup`, async route => {
|
|
const data = route.request().postDataJSON() as IUserSignupDTO;
|
|
const newID = dataActiveUsers.length + 1;
|
|
dataActiveUsers.push({
|
|
id: newID,
|
|
first_name: data.first_name,
|
|
last_name: data.last_name
|
|
});
|
|
dataUserProfile = {
|
|
id: newID,
|
|
username: data.username,
|
|
email: data.email,
|
|
first_name: data.first_name,
|
|
last_name: data.last_name
|
|
};
|
|
await route.fulfill({ json: dataUserProfile });
|
|
});
|
|
}
|
|
|
|
export async function setupUserProfileUpdate(page: Page) {
|
|
await page.route(`${BACKEND_URL}/users/api/profile`, async route => {
|
|
dataUserProfile = {
|
|
...dataUserProfile,
|
|
...(route.request().postDataJSON() as IUpdateProfileDTO)
|
|
};
|
|
await route.fulfill({ json: dataUserProfile });
|
|
});
|
|
}
|