diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_FnArgument.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_FnArgument.ts new file mode 100644 index 00000000000..28ad1354991 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_FnArgument.ts @@ -0,0 +1,15 @@ +/// + +//// function doSomething(a){} +//// doSomething(/*x*/(/*y*/) => 1 + 1); + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to anonymous function", + actionDescription: "Convert to anonymous function", + newContent: `function doSomething(a){} +doSomething(function() { + return 1 + 1; +});`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_MapArgument.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_MapArgument.ts new file mode 100644 index 00000000000..d1919cf5d7c --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_MapArgument.ts @@ -0,0 +1,13 @@ +/// + +//// [9,8,7].map(/*x*/n/*y*/ => n + 418); + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to anonymous function", + actionDescription: "Convert to anonymous function", + newContent: `[9,8,7].map(function(n) { + return n + 418; +});`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_RetType.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_Typed.ts similarity index 66% rename from tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_RetType.ts rename to tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_Typed.ts index d8f6a591d17..0fbea66be0e 100644 --- a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_RetType.ts +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToAnon_Typed.ts @@ -1,13 +1,13 @@ /// -//// const foo = /*x*/(/*y*/): number => a + 1; +//// const increment = /*x*/(/*y*/a: number): number => a + 1; goTo.select("x", "y"); edit.applyRefactor({ refactorName: "Convert arrow function or function expression", actionName: "Convert to anonymous function", actionDescription: "Convert to anonymous function", - newContent: `const foo = function(): number { + newContent: `const increment = function(a: number): number { return a + 1; };`, }); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_FnArgument.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_FnArgument.ts new file mode 100644 index 00000000000..3dc442e4e5d --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_FnArgument.ts @@ -0,0 +1,15 @@ +/// + +//// function foo(lambda){} +//// foo(function /*x*/is/*y*/Even(n) { +//// return n % 2 === 0; +//// }); + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to arrow function", + actionDescription: "Convert to arrow function", + newContent: `function foo(lambda){} +foo((n) => n % 2 === 0);`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_RetType.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_MapArgument.ts similarity index 62% rename from tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_RetType.ts rename to tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_MapArgument.ts index ce814984236..4e1c0b2f9f5 100644 --- a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_RetType.ts +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_MapArgument.ts @@ -1,13 +1,13 @@ /// -//// const foo = /*x*/f/*y*/unction(): string { -//// return "foobar"; -//// }; +//// [4,5,6,7].map(function /*x*/is/*y*/Even(n) { +//// return n % 2 === 0; +//// }); goTo.select("x", "y"); edit.applyRefactor({ refactorName: "Convert arrow function or function expression", actionName: "Convert to arrow function", actionDescription: "Convert to arrow function", - newContent: `const foo = (): string => "foobar";`, + newContent: `[4,5,6,7].map((n) => n % 2 === 0);`, }); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_Typed.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_Typed.ts new file mode 100644 index 00000000000..01d30d1f080 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToArrow_Typed.ts @@ -0,0 +1,13 @@ +/// + +//// const concat = /*x*/f/*y*/unction(a: string, b: string): string { +//// return a + b; +//// }; + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to arrow function", + actionDescription: "Convert to arrow function", + newContent: `const concat = (a: string, b: string): string => a + b;`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Typed.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Typed.ts new file mode 100644 index 00000000000..6a67c390bd4 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Typed.ts @@ -0,0 +1,13 @@ +/// + +//// let isFoo = /*x*/(/*y*/n: number): boolean => n === 42; + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to named function", + actionDescription: "Convert to named function", + newContent: `function isFoo(n: number): boolean { + return n === 42; +}`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_RetType.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_keywordSelection.ts similarity index 69% rename from tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_RetType.ts rename to tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_keywordSelection.ts index 9fffa041499..2e2f1b2b14d 100644 --- a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_RetType.ts +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_keywordSelection.ts @@ -1,13 +1,13 @@ /// -//// let foo = /*x*/(/*y*/): number => 42; +//// /*x*/let/*y*/ foo = a => 1 + a; goTo.select("x", "y"); edit.applyRefactor({ refactorName: "Convert arrow function or function expression", actionName: "Convert to named function", actionDescription: "Convert to named function", - newContent: `function foo(): number { - return 42; + newContent: `function foo(a) { + return 1 + a; }`, });