Skip to content

Commit 98a4b1a

Browse files
committed
test(unstable): add tests for Entity/utils
1 parent a1dc573 commit 98a4b1a

File tree

4 files changed

+492
-16
lines changed

4 files changed

+492
-16
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
import {JsonSchemaType, SchemaRendererMode} from '../core/constants';
2+
import type {
3+
IndependentView,
4+
JsonSchema,
5+
JsonSchemaArray,
6+
JsonSchemaBoolean,
7+
JsonSchemaNumber,
8+
JsonSchemaObject,
9+
JsonSchemaString,
10+
SchemaRendererConfig,
11+
SimpleView,
12+
Wrapper,
13+
} from '../core/types';
14+
15+
export const MockArrayFormComponent: SimpleView<JsonSchemaArray> = () => null;
16+
export const MockBooleanFormComponent: SimpleView<JsonSchemaBoolean> = () => null;
17+
export const MockNumberFormComponent: SimpleView<JsonSchemaNumber> = () => null;
18+
export const MockObjectFormComponent: SimpleView<JsonSchemaObject> = () => null;
19+
export const MockStringFormComponent: SimpleView<JsonSchemaString> = () => null;
20+
21+
export const MockArrayOverviewComponent: SimpleView<JsonSchemaArray> = () => null;
22+
export const MockBooleanOverviewComponent: SimpleView<JsonSchemaBoolean> = () => null;
23+
export const MockNumberOverviewComponent: SimpleView<JsonSchemaNumber> = () => null;
24+
export const MockObjectOverviewComponent: SimpleView<JsonSchemaObject> = () => null;
25+
export const MockStringOverviewComponent: SimpleView<JsonSchemaString> = () => null;
26+
27+
export const MockIndependentArrayFormComponent: IndependentView<JsonSchemaArray> = () => null;
28+
export const MockIndependentBooleanFormComponent: IndependentView<JsonSchemaBoolean> = () => null;
29+
export const MockIndependentNumberFormComponent: IndependentView<JsonSchemaNumber> = () => null;
30+
export const MockIndependentObjectFormComponent: IndependentView<JsonSchemaObject> = () => null;
31+
export const MockIndependentStringFormComponent: IndependentView<JsonSchemaString> = () => null;
32+
33+
export const MockIndependentArrayOverviewComponent: IndependentView<JsonSchemaArray> = () => null;
34+
export const MockIndependentBooleanOverviewComponent: IndependentView<JsonSchemaBoolean> = () =>
35+
null;
36+
export const MockIndependentNumberOverviewComponent: IndependentView<JsonSchemaNumber> = () => null;
37+
export const MockIndependentObjectOverviewComponent: IndependentView<JsonSchemaObject> = () => null;
38+
export const MockIndependentStringOverviewComponent: IndependentView<JsonSchemaString> = () => null;
39+
40+
export const MockArrayWrapper: Wrapper<JsonSchemaArray> = () => null;
41+
export const MockBooleanWrapper: Wrapper<JsonSchemaBoolean> = () => null;
42+
export const MockNumberWrapper: Wrapper<JsonSchemaNumber> = () => null;
43+
export const MockObjectWrapper: Wrapper<JsonSchemaObject> = () => null;
44+
export const MockStringWrapper: Wrapper<JsonSchemaString> = () => null;
45+
46+
export const mockSchemaRendererConfig: SchemaRendererConfig = {
47+
[JsonSchemaType.Array]: {
48+
views: {
49+
base: {
50+
[SchemaRendererMode.Form]: {
51+
Component: MockArrayFormComponent,
52+
},
53+
[SchemaRendererMode.Overview]: {
54+
Component: MockArrayOverviewComponent,
55+
},
56+
},
57+
custom: {
58+
[SchemaRendererMode.Form]: {
59+
Component: MockIndependentArrayFormComponent,
60+
independent: true,
61+
},
62+
[SchemaRendererMode.Overview]: {
63+
Component: MockIndependentArrayOverviewComponent,
64+
independent: true,
65+
},
66+
},
67+
},
68+
wrappers: {
69+
default: MockArrayWrapper,
70+
},
71+
validators: {},
72+
},
73+
[JsonSchemaType.Boolean]: {
74+
views: {
75+
base: {
76+
[SchemaRendererMode.Form]: {
77+
Component: MockBooleanFormComponent,
78+
},
79+
[SchemaRendererMode.Overview]: {
80+
Component: MockBooleanOverviewComponent,
81+
},
82+
},
83+
custom: {
84+
[SchemaRendererMode.Form]: {
85+
Component: MockIndependentBooleanFormComponent,
86+
independent: true,
87+
},
88+
[SchemaRendererMode.Overview]: {
89+
Component: MockIndependentBooleanOverviewComponent,
90+
independent: true,
91+
},
92+
},
93+
},
94+
wrappers: {
95+
default: MockBooleanWrapper,
96+
},
97+
validators: {},
98+
},
99+
[JsonSchemaType.Number]: {
100+
views: {
101+
base: {
102+
[SchemaRendererMode.Form]: {
103+
Component: MockNumberFormComponent,
104+
},
105+
[SchemaRendererMode.Overview]: {
106+
Component: MockNumberOverviewComponent,
107+
},
108+
},
109+
custom: {
110+
[SchemaRendererMode.Form]: {
111+
Component: MockIndependentNumberFormComponent,
112+
independent: true,
113+
},
114+
[SchemaRendererMode.Overview]: {
115+
Component: MockIndependentNumberOverviewComponent,
116+
independent: true,
117+
},
118+
},
119+
},
120+
wrappers: {
121+
default: MockNumberWrapper,
122+
},
123+
validators: {},
124+
},
125+
[JsonSchemaType.Object]: {
126+
views: {
127+
base: {
128+
[SchemaRendererMode.Form]: {
129+
Component: MockObjectFormComponent,
130+
},
131+
[SchemaRendererMode.Overview]: {
132+
Component: MockObjectOverviewComponent,
133+
},
134+
},
135+
custom: {
136+
[SchemaRendererMode.Form]: {
137+
Component: MockIndependentObjectFormComponent,
138+
independent: true,
139+
},
140+
[SchemaRendererMode.Overview]: {
141+
Component: MockIndependentObjectOverviewComponent,
142+
independent: true,
143+
},
144+
},
145+
},
146+
wrappers: {
147+
default: MockObjectWrapper,
148+
},
149+
validators: {},
150+
},
151+
[JsonSchemaType.String]: {
152+
views: {
153+
base: {
154+
[SchemaRendererMode.Form]: {
155+
Component: MockStringFormComponent,
156+
},
157+
[SchemaRendererMode.Overview]: {
158+
Component: MockStringOverviewComponent,
159+
},
160+
},
161+
custom: {
162+
[SchemaRendererMode.Form]: {
163+
Component: MockIndependentStringFormComponent,
164+
independent: true,
165+
},
166+
[SchemaRendererMode.Overview]: {
167+
Component: MockIndependentStringOverviewComponent,
168+
independent: true,
169+
},
170+
},
171+
},
172+
wrappers: {
173+
default: MockStringWrapper,
174+
},
175+
validators: {},
176+
},
177+
};
178+
179+
export function createMockSchema<T extends JsonSchema>(
180+
type: JsonSchemaType,
181+
viewType = 'base',
182+
wrapperType = 'default',
183+
viewProps: Record<string, any> = {},
184+
wrapperProps: Record<string, any> = {},
185+
): T {
186+
return {
187+
type,
188+
entityParameters: {
189+
viewType,
190+
wrapperType,
191+
viewProps,
192+
wrapperProps,
193+
},
194+
} as T;
195+
}

0 commit comments

Comments
 (0)