mirror of
https://github.com/golang/go
synced 2024-11-18 23:14:43 -07:00
101 lines
1.8 KiB
Go
101 lines
1.8 KiB
Go
|
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)
|
||
|
}
|
||
|
})
|
||
|
}
|