first commit

This commit is contained in:
2025-04-24 13:11:28 +08:00
commit ff9c54d5e4
5960 changed files with 834111 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
import { render } from '@testing-library/react'
import fetchMock from 'fetch-mock'
import React from 'react'
import { ColorPickerProvider } from '../../../../../frontend/js/features/project-list/context/color-picker-context'
import { ProjectListProvider } from '../../../../../frontend/js/features/project-list/context/project-list-context'
import { Project } from '../../../../../types/project/dashboard/api'
import { projectsData } from '../fixtures/projects-data'
import { SplitTestProvider } from '@/shared/context/split-test-context'
import { UserProvider } from '@/shared/context/user-context'
type Options = {
projects?: Project[]
}
export function renderWithProjectListContext(
component: React.ReactElement,
options: Options = {}
) {
let { projects } = options
if (!projects) {
projects = projectsData
}
fetchMock.post('express:/api/project', {
status: 200,
body: { projects, totalSize: projects.length },
})
fetchMock.get('express:/system/messages', {
status: 200,
body: [],
})
window.metaAttributesCache.set('ol-user', {
id: 'fake_user',
first_name: 'fake_user_first_name',
email: 'fake@example.com',
})
const ProjectListProviderWrapper = ({
children,
}: {
children: React.ReactNode
}) => (
<UserProvider>
<ProjectListProvider>
<SplitTestProvider>
<ColorPickerProvider>{children}</ColorPickerProvider>
</SplitTestProvider>
</ProjectListProvider>
</UserProvider>
)
return render(component, {
wrapper: ProjectListProviderWrapper,
})
}
export function resetProjectListContextFetch() {
fetchMock.removeRoutes().clearHistory()
}