From b668e342c449d70002bfcfb5ed6d3eb26c684cbd Mon Sep 17 00:00:00 2001 From: Gabriela Britto Date: Mon, 28 Jan 2019 15:53:39 -0800 Subject: [PATCH] Add tests for convert to named parameters refactor --- .../refactorConvertToNamedParameters.ts | 4 ++- .../refactorConvertToNamedParameters1.ts | 23 ++++++++++++++++ .../refactorConvertToNamedParameters10.ts | 7 +++++ .../refactorConvertToNamedParameters11.ts | 13 +++++++++ .../refactorConvertToNamedParameters12.ts | 13 +++++++++ .../refactorConvertToNamedParameters13.ts | 7 +++++ .../refactorConvertToNamedParameters14.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters15.ts | 8 ++++++ .../refactorConvertToNamedParameters16.ts | 23 ++++++++++++++++ .../refactorConvertToNamedParameters17.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters2.ts | 27 +++++++++++++++++++ .../refactorConvertToNamedParameters3.ts | 21 +++++++++++++++ .../refactorConvertToNamedParameters4.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters5.ts | 23 ++++++++++++++++ .../refactorConvertToNamedParameters6.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters7.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters8.ts | 17 ++++++++++++ .../refactorConvertToNamedParameters9.ts | 10 +++++++ 18 files changed, 280 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters1.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters10.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters11.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters12.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters13.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters14.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters15.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters16.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters17.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters2.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters3.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters4.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters5.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters6.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters7.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters8.ts create mode 100644 tests/cases/fourslash/refactorConvertToNamedParameters9.ts diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters.ts b/tests/cases/fourslash/refactorConvertToNamedParameters.ts index e160dd471c0..0834bf288fc 100644 --- a/tests/cases/fourslash/refactorConvertToNamedParameters.ts +++ b/tests/cases/fourslash/refactorConvertToNamedParameters.ts @@ -3,6 +3,7 @@ ////function f(/*a*/a: number, b: string/*b*/): string { //// return b; ////} +////f(4, "b"); goTo.select("a", "b"); edit.applyRefactor({ @@ -11,5 +12,6 @@ edit.applyRefactor({ actionDescription: "Convert to named parameters", newContent: `function f({ a, b }: { a: number; b: string; }): string { return b; -}` +} +f({ a: 4, b: "b" });` }); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters1.ts b/tests/cases/fourslash/refactorConvertToNamedParameters1.ts new file mode 100644 index 00000000000..d7dce948cae --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters1.ts @@ -0,0 +1,23 @@ +/// + +////class Foo { +//// /*a*/bar/*b*/(t: string, s: string): string { +//// return s + t; +//// } +////} +////var foo = new Foo(); +////foo.bar("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `class Foo { + bar({ t, s }: { t: string; s: string; }): string { + return s + t; + } +} +var foo = new Foo(); +foo.bar({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters10.ts b/tests/cases/fourslash/refactorConvertToNamedParameters10.ts new file mode 100644 index 00000000000..209a06d5bfa --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters10.ts @@ -0,0 +1,7 @@ +/// + +////const { foo, bar } = { foo: /*a*/(a: number, b: number)/*b*/ => {}, bar: () => {} }; +////foo(1, 2); + +goTo.select("a", "b"); +verify.not.refactorAvailable("Convert to named parameters"); diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters11.ts b/tests/cases/fourslash/refactorConvertToNamedParameters11.ts new file mode 100644 index 00000000000..cbacbf1f21a --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters11.ts @@ -0,0 +1,13 @@ +/// + +////const foo = /*a*/function/*b*/(a: number, b: number) {}; +////foo(1, 2); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `const foo = function({ a, b }: { a: number; b: number; }) {}; +foo({ a: 1, b: 2 });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters12.ts b/tests/cases/fourslash/refactorConvertToNamedParameters12.ts new file mode 100644 index 00000000000..6a2fbdc6f04 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters12.ts @@ -0,0 +1,13 @@ +/// + +////const foo = /*a*/(a: number, b: number)/*b*/ => {}; +////foo(1, 2); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `const foo = ({ a, b }: { a: number; b: number; }) => {}; +foo({ a: 1, b: 2 });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters13.ts b/tests/cases/fourslash/refactorConvertToNamedParameters13.ts new file mode 100644 index 00000000000..ec25b50b067 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters13.ts @@ -0,0 +1,7 @@ +/// + +////var foo = /*a*/(a: number, b: number)/*b*/ => {}; +////foo(1, 2); + +goTo.select("a", "b"); +verify.not.refactorAvailable("Convert to named parameters"); diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters14.ts b/tests/cases/fourslash/refactorConvertToNamedParameters14.ts new file mode 100644 index 00000000000..a7914bc9f1f --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters14.ts @@ -0,0 +1,17 @@ +/// + +////const c = class { +//// constructor(/*a*/a: number, b = { x: 1 }/*b*/) {} +////} +////var x = new c(2); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `const c = class { + constructor({ a, b = { x: 1 } }: { a: number; b?: { x: number; }; }) {} +} +var x = new c({ a: 2 });` +}); diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters15.ts b/tests/cases/fourslash/refactorConvertToNamedParameters15.ts new file mode 100644 index 00000000000..a056a82871b --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters15.ts @@ -0,0 +1,8 @@ +/// + +/////export default class { +//// constructor(/*a*/a: number, b = { x: 1 }/*b*/) {} +////} + +goTo.select("a", "b"); +verify.not.refactorAvailable("Convert to named parameters"); diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters16.ts b/tests/cases/fourslash/refactorConvertToNamedParameters16.ts new file mode 100644 index 00000000000..7d626215572 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters16.ts @@ -0,0 +1,23 @@ +/// + +////class Foo { +//// /*a*/bar/*b*/(t: T, s: T) { +//// return s; +//// } +////} +////var foo = new Foo(); +////foo.bar("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `class Foo { + bar({ t, s }: { t: T; s: T; }) { + return s; + } +} +var foo = new Foo(); +foo.bar({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters17.ts b/tests/cases/fourslash/refactorConvertToNamedParameters17.ts new file mode 100644 index 00000000000..5af97ca694a --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters17.ts @@ -0,0 +1,17 @@ +/// + +////function foo(/*a*/t: T, s: S/*b*/) { +//// return s; +////} +////foo("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `function foo({ t, s }: { t: T; s: S; }) { + return s; +} +foo({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters2.ts b/tests/cases/fourslash/refactorConvertToNamedParameters2.ts new file mode 100644 index 00000000000..86b1f9eb610 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters2.ts @@ -0,0 +1,27 @@ +/// + +////class Foo { +//// t: string; +//// s: string; +//// /*a*/constructor/*b*/(t: string, s: string) { +//// this.t = t; +//// this.s = s; +//// } +////} +////var foo = new Foo("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `class Foo { + t: string; + s: string; + constructor({ t, s }: { t: string; s: string; }) { + this.t = t; + this.s = s; + } +} +var foo = new Foo({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters3.ts b/tests/cases/fourslash/refactorConvertToNamedParameters3.ts new file mode 100644 index 00000000000..c84c1aa20d4 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters3.ts @@ -0,0 +1,21 @@ +/// + +////class Foo { +//// static /*a*/bar/*b*/(t: string, s: string): string { +//// return s + t; +//// } +////} +////Foo.bar("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `class Foo { + static bar({ t, s }: { t: string; s: string; }): string { + return s + t; + } +} +Foo.bar({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters4.ts b/tests/cases/fourslash/refactorConvertToNamedParameters4.ts new file mode 100644 index 00000000000..b6bdb7a88c2 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters4.ts @@ -0,0 +1,17 @@ +/// + +////function f(/*a*/a: number, b = { x: 1, z: { s: true } }/*b*/) { +//// return b; +////} +////f(2); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `function f({ a, b = { x: 1, z: { s: true } } }: { a: number; b?: { x: number; z: { s: boolean; }; }; }) { + return b; +} +f({ a: 2 });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters5.ts b/tests/cases/fourslash/refactorConvertToNamedParameters5.ts new file mode 100644 index 00000000000..8b8958bc674 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters5.ts @@ -0,0 +1,23 @@ +/// + +////class Foo { +//// /*a*/bar/*b*/(t: string, s: string): string { +//// return s + t; +//// } +////} +////var foo = new Foo(); +////foo['bar']("a", "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `class Foo { + bar({ t, s }: { t: string; s: string; }): string { + return s + t; + } +} +var foo = new Foo(); +foo['bar']({ t: "a", s: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters6.ts b/tests/cases/fourslash/refactorConvertToNamedParameters6.ts new file mode 100644 index 00000000000..1e63f44fc35 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters6.ts @@ -0,0 +1,17 @@ +/// + +////function f(/*a*/a: number, b: string = "1"/*b*/): string { +//// return b; +////} +////f(4, "b"); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `function f({ a, b = "1" }: { a: number; b?: string; }): string { + return b; +} +f({ a: 4, b: "b" });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters7.ts b/tests/cases/fourslash/refactorConvertToNamedParameters7.ts new file mode 100644 index 00000000000..825b34c303d --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters7.ts @@ -0,0 +1,17 @@ +/// + +////function f(/*a*/a?: number, b: string = "1"/*b*/): string { +//// return b; +////} +////f(); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `function f({ a, b = "1" }: { a?: number; b?: string; } = {}): string { + return b; +} +f();` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters8.ts b/tests/cases/fourslash/refactorConvertToNamedParameters8.ts new file mode 100644 index 00000000000..2c3d7de339f --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters8.ts @@ -0,0 +1,17 @@ +/// + +////function f(/*a*/a: number, b = 1/*b*/) { +//// return b; +////} +////f(2); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert to named parameters", + actionName: "Convert to named parameters", + actionDescription: "Convert to named parameters", + newContent: `function f({ a, b = 1 }: { a: number; b?: number; }) { + return b; +} +f({ a: 2 });` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters9.ts b/tests/cases/fourslash/refactorConvertToNamedParameters9.ts new file mode 100644 index 00000000000..772f8ea8848 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters9.ts @@ -0,0 +1,10 @@ +/// + +////function f(a: number, b: number); +////function f(/*a*/a: number, b = 1/*b*/) { +//// return b; +////} +////f(2); + +goTo.select("a", "b"); +verify.not.refactorAvailable("Convert to named parameters"); \ No newline at end of file