Skip to content

Commit

Permalink
test: move function test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
mistlog committed Mar 1, 2021
1 parent a4b0ffe commit 124bb35
Show file tree
Hide file tree
Showing 4 changed files with 212 additions and 206 deletions.
171 changes: 0 additions & 171 deletions test/__snapshots__/parser.test.tsx.snap
Expand Up @@ -176,177 +176,6 @@ Object {
}
`;

exports[`FunctionType 1`] = `
Object {
"kind": "FunctionType",
"params": Array [],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
}
`;

exports[`FunctionType: nested 1`] = `
Object {
"kind": "FunctionType",
"params": Array [],
"returnType": Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "a",
},
"type": Object {
"kind": "NumberType",
"value": "number",
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "b",
},
"type": Object {
"kind": "StringType",
"value": "string",
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
},
}
`;

exports[`FunctionType: params 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "a",
},
"type": Object {
"kind": "NumberType",
"value": "number",
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "b",
},
"type": Object {
"kind": "StringType",
"value": "string",
},
},
],
"returnType": Object {
"kind": "NumberType",
"value": "number",
},
}
`;

exports[`FunctionType: rest 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "args",
},
"rest": true,
"type": Object {
"dimension": 1,
"elementType": Object {
"kind": "AnyType",
"value": "any",
},
"kind": "ArrayType",
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
}
`;

exports[`FunctionType: type param 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "key",
},
"type": Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "K",
},
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "value",
},
"type": Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "T",
},
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
"typeParams": Array [
Object {
"constraint": Object {
"kind": "StringType",
"value": "string",
},
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "K",
},
},
Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "T",
},
},
],
}
`;

exports[`Identifier 1`] = `
Object {
"kind": "Identifier",
Expand Down
35 changes: 0 additions & 35 deletions test/parser.test.tsx
Expand Up @@ -470,41 +470,6 @@ test("IndexType: deep", () => {
expect(ast).toMatchSnapshot();
})

test("FunctionType", () => {
const parser = ReactPeg.render(<TypeExpression />);
const ast = parser.parse(`type () => void`);
saveAST(ast, "FunctionType.json");
expect(ast).toMatchSnapshot();
})

test("FunctionType: rest", () => {
const parser = ReactPeg.render(<TypeExpression />);
const ast = parser.parse(`type (...args: any[]) => void`);
saveAST(ast, "FunctionType-Rest.json");
expect(ast).toMatchSnapshot();
})

test("FunctionType: params", () => {
const parser = ReactPeg.render(<TypeExpression />);
const ast = parser.parse(`type (a:number, b: string) => number`);
saveAST(ast, "FunctionType-Params.json");
expect(ast).toMatchSnapshot();
})

test("FunctionType: nested", () => {
const parser = ReactPeg.render(<TypeExpression />);
const ast = parser.parse(`type () => type (a: number, b: string) => void`);
saveAST(ast, "FunctionType-Nested.json");
expect(ast).toMatchSnapshot();
})

test("FunctionType: type param", () => {
const parser = ReactPeg.render(<TypeExpression />);
const ast = parser.parse(`type <K extends string, T>(key: K, value: T) => void`);
saveAST(ast, "FunctionType-TypeParam.json");
expect(ast).toMatchSnapshot();
})

test("MappedType", () => {
const parser = ReactPeg.render(<TypeExpression />);
// { [K in Keys]: boolean }
Expand Down
172 changes: 172 additions & 0 deletions test/parser/__snapshots__/function.test.tsx.snap
@@ -0,0 +1,172 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`parser: function FunctionType 1`] = `
Object {
"kind": "FunctionType",
"params": Array [],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
}
`;

exports[`parser: function FunctionType: nested 1`] = `
Object {
"kind": "FunctionType",
"params": Array [],
"returnType": Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "a",
},
"type": Object {
"kind": "NumberType",
"value": "number",
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "b",
},
"type": Object {
"kind": "StringType",
"value": "string",
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
},
}
`;

exports[`parser: function FunctionType: params 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "a",
},
"type": Object {
"kind": "NumberType",
"value": "number",
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "b",
},
"type": Object {
"kind": "StringType",
"value": "string",
},
},
],
"returnType": Object {
"kind": "NumberType",
"value": "number",
},
}
`;

exports[`parser: function FunctionType: rest 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "args",
},
"rest": true,
"type": Object {
"dimension": 1,
"elementType": Object {
"kind": "AnyType",
"value": "any",
},
"kind": "ArrayType",
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
}
`;

exports[`parser: function FunctionType: type param 1`] = `
Object {
"kind": "FunctionType",
"params": Array [
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "key",
},
"type": Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "K",
},
},
},
Object {
"kind": "FunctionTypeParam",
"name": Object {
"kind": "Identifier",
"name": "value",
},
"type": Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "T",
},
},
},
],
"returnType": Object {
"kind": "VoidType",
"value": "void",
},
"typeParams": Array [
Object {
"constraint": Object {
"kind": "StringType",
"value": "string",
},
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "K",
},
},
Object {
"kind": "TypeReference",
"typeName": Object {
"kind": "Identifier",
"name": "T",
},
},
],
}
`;

0 comments on commit 124bb35

Please sign in to comment.