| package regtest |
| |
| import ( |
| "testing" |
| ) |
| |
| const needs = ` |
| -- go.mod -- |
| module foo |
| |
| -- a.go -- |
| package main |
| func f() {} |
| ` |
| const ntest = `package main |
| func TestZ(t *testing.T) { |
| f() |
| } |
| ` |
| const want = `package main |
| |
| import "testing" |
| |
| func TestZ(t *testing.T) { |
| f() |
| } |
| ` |
| |
| func TestIssue38815(t *testing.T) { |
| // it was returning |
| // "package main\nimport \"testing\"\npackage main..." |
| runner.Run(t, needs, func(t *testing.T, env *Env) { |
| env.CreateBuffer("a_test.go", ntest) |
| env.SaveBuffer("a_test.go") |
| got := env.Editor.BufferText("a_test.go") |
| if want != got { |
| t.Errorf("got\n%q, wanted\n%q", got, want) |
| } |
| }) |
| } |
| |
| const vim1 = `package main |
| |
| import "fmt" |
| |
| var foo = 1 |
| var bar = 2 |
| |
| func main() { |
| fmt.Printf("This is a test %v\n", foo) |
| fmt.Printf("This is another test %v\n", foo) |
| fmt.Printf("This is also a test %v\n", foo) |
| } |
| ` |
| |
| func TestVim1(t *testing.T) { |
| // The file remains unchanged, but if there are any CodeActions returned, they confuse vim. |
| // Therefore check for no CodeActions |
| runner.Run(t, vim1, func(t *testing.T, env *Env) { |
| env.CreateBuffer("main.go", vim1) |
| env.OrganizeImports("main.go") |
| actions := env.CodeAction("main.go") |
| if len(actions) > 0 { |
| got := env.Editor.BufferText("main.go") |
| t.Errorf("unexpected actions %#v", actions) |
| if got == vim1 { |
| t.Errorf("no changes") |
| } else { |
| t.Errorf("got\n%q", got) |
| t.Errorf("was\n%q", vim1) |
| } |
| } |
| }) |
| } |
| |
| const vim2 = `package main |
| |
| import ( |
| "fmt" |
| |
| "example.com/blah" |
| |
| "rubbish.com/useless" |
| ) |
| |
| func main() { |
| fmt.Println(blah.Name, useless.Name) |
| } |
| ` |
| |
| func TestVim2(t *testing.T) { |
| runner.Run(t, vim1, func(t *testing.T, env *Env) { |
| env.CreateBuffer("main.go", vim2) |
| env.OrganizeImports("main.go") |
| actions := env.CodeAction("main.go") |
| if len(actions) > 0 { |
| t.Errorf("unexpected actions %#v", actions) |
| } |
| }) |
| } |