Match-id-bb93b31ea0be8b9131ced01cdca40dfd0ec15dcf
This commit is contained in:
parent
3aeaf49693
commit
713c9d2bb8
|
@ -0,0 +1,87 @@
|
|||
|
||||
import { parseAttr } from '../parser/parseAttr';
|
||||
import parseTreeRoot from '../parser/parseVNode';
|
||||
import { VNode } from './../../../horizon/src/renderer/vnode/VNode';
|
||||
import { FunctionComponent, ClassComponent } from './../../../horizon/src/renderer/vnode/VNodeTags';
|
||||
|
||||
const mockComponentNames = ['Apple', 'Pear', 'Banana', 'Orange', 'Jenny', 'Kiwi', 'Coconut'];
|
||||
|
||||
function MockVNode(tag: string, props = {}, key = null, realNode = {}) {
|
||||
const vNode = new VNode(tag, props, key, realNode);
|
||||
const name = mockComponentNames.shift() || 'MockComponent';
|
||||
vNode.type = {name};
|
||||
return vNode;
|
||||
}
|
||||
|
||||
interface IMockTree {
|
||||
tag: string,
|
||||
children?: IMockTree[],
|
||||
}
|
||||
|
||||
const tree: IMockTree = {
|
||||
tag: ClassComponent,
|
||||
children: [
|
||||
{tag: FunctionComponent},
|
||||
{tag: ClassComponent},
|
||||
{tag: FunctionComponent},
|
||||
{
|
||||
tag: FunctionComponent,
|
||||
children: [
|
||||
{tag: ClassComponent}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
function addOneThousandNode(node: IMockTree) {
|
||||
const nodes = [];
|
||||
for(let i = 0; i < 1000; i++) {
|
||||
nodes.push({tag: FunctionComponent});
|
||||
}
|
||||
node?.children.push({tag: ClassComponent,children: nodes});
|
||||
};
|
||||
|
||||
addOneThousandNode(tree);
|
||||
|
||||
function getMockVNodeTree(tree: IMockTree, vNode: VNode) {
|
||||
const children = tree.children;
|
||||
if (children && children.length !== 0) {
|
||||
const childNode = children[0];
|
||||
let childVNode = MockVNode(childNode.tag);
|
||||
childVNode.key = '0';
|
||||
getMockVNodeTree(childNode, childVNode);
|
||||
vNode.child = childVNode;
|
||||
childVNode.parent = vNode;
|
||||
for(let i = 1; i < children.length; i++) {
|
||||
const nextNode = children[i];
|
||||
const nextVNode = MockVNode(nextNode.tag);
|
||||
nextVNode.key = String(i);
|
||||
nextVNode.parent = vNode;
|
||||
getMockVNodeTree(nextNode, nextVNode);
|
||||
childVNode.next = nextVNode;
|
||||
childVNode = nextVNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
const rootVNode = MockVNode(tree.tag);
|
||||
getMockVNodeTree(tree, rootVNode);
|
||||
|
||||
export const mockParsedVNodeData = parseTreeRoot(rootVNode);
|
||||
|
||||
|
||||
const mockState = {
|
||||
str: 'jenny',
|
||||
num: 3,
|
||||
boolean: true,
|
||||
und: undefined,
|
||||
fun: () => {},
|
||||
symbol: Symbol('sym'),
|
||||
map: new Map([['a', 'a']]),
|
||||
set: new Set(['a', 1, 2, Symbol('bambi')]),
|
||||
arr: [1,2,3,4],
|
||||
obj: {
|
||||
niko: {jenny: 'jenny'}
|
||||
}
|
||||
};
|
||||
|
||||
export const parsedMockState = parseAttr(mockState);
|
Loading…
Reference in New Issue