123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import type {RouteComponent, RouteComponentProps} from 'react-router';
- import type {Location} from 'history';
- import {OrganizationFixture} from 'sentry-fixture/organization';
- import {ProjectFixture} from 'sentry-fixture/project';
- import {OrgRoleListFixture, TeamRoleListFixture} from 'sentry-fixture/roleList';
- import {RouterContextFixture} from 'sentry-fixture/routerContextFixture';
- import {RouterFixture} from 'sentry-fixture/routerFixture';
- import type {Organization as TOrganization} from 'sentry/types/organization';
- import type {Project} from 'sentry/types/project';
- type RouteShape = {
- childRoutes?: RouteShape[];
- component?: RouteComponent;
- from?: string;
- indexRoute?: RouteShape;
- name?: string;
- path?: string;
- };
- interface InitializeOrgOptions<RouterParams> {
- organization?: Partial<TOrganization>;
- project?: Partial<Project>;
- projects?: Partial<Project>[];
- router?: {
- location?: Partial<Location>;
- params?: RouterParams;
- push?: jest.Mock;
- routes?: RouteShape[];
- };
- }
- export function initializeOrg<RouterParams = {orgId: string; projectId: string}>({
- organization: additionalOrg,
- project: additionalProject,
- projects: additionalProjects,
- router: additionalRouter,
- }: InitializeOrgOptions<RouterParams> = {}) {
- const projects = (
- additionalProjects ||
- (additionalProject && [additionalProject]) || [{}]
- ).map(p => ProjectFixture(p));
- const [project] = projects;
- const organization = OrganizationFixture({
- projects,
- ...additionalOrg,
- orgRoleList: OrgRoleListFixture(),
- teamRoleList: TeamRoleListFixture(),
- });
- const router = RouterFixture({
- ...additionalRouter,
- params: {
- orgId: organization.slug,
- projectId: projects[0]?.slug,
- ...additionalRouter?.params,
- },
- });
- const routerContext: any = RouterContextFixture([
- {
- organization,
- project,
- router,
- location: router.location,
- },
- ]);
-
- const routerProps: RouteComponentProps<RouterParams, {}> = {
- params: router.params as any,
- routeParams: router.params,
- router,
- route: router.routes[0],
- routes: router.routes,
- location: routerContext.context.location,
- };
- return {
- organization,
- project,
- projects,
- router,
- routerContext,
- routerProps,
-
- route: {},
- };
- }
|