From ff8cd4ed39884bc6774087809e1593f36c4b90e3 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Mon, 15 May 2017 22:44:19 +0300 Subject: gocomplete: run only runnable go files when typing 'go run', the completion will complete only go files which are in main package and have a main function. --- gocomplete/tests_test.go | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 gocomplete/tests_test.go (limited to 'gocomplete/tests_test.go') diff --git a/gocomplete/tests_test.go b/gocomplete/tests_test.go new file mode 100644 index 0000000..4eb2308 --- /dev/null +++ b/gocomplete/tests_test.go @@ -0,0 +1,84 @@ +package main + +import ( + "testing" + + "github.com/posener/complete" +) + +func TestPredictions(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + predictor complete.Predictor + last string + completion []string + }{ + { + name: "predict tests ok", + predictor: predictTest, + completion: []string{"TestPredictions", "Example"}, + }, + { + name: "predict tests not found", + predictor: predictTest, + last: "X", + }, + { + name: "predict benchmark ok", + predictor: predictBenchmark, + completion: []string{"BenchmarkFake"}, + }, + { + name: "predict benchmarks not found", + predictor: predictBenchmark, + last: "X", + }, + { + name: "predict packages ok", + predictor: complete.PredictFunc(predictPackages), + completion: []string{"./"}, + }, + { + name: "predict packages not found", + predictor: complete.PredictFunc(predictPackages), + last: "X", + }, + { + name: "predict runnable ok", + predictor: complete.PredictFunc(predictRunnableFiles), + completion: []string{"./complete.go"}, + }, + { + name: "predict runnable not found", + predictor: complete.PredictFunc(predictRunnableFiles), + last: "X", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + a := complete.Args{Last: tt.last} + got := tt.predictor.Predict(a) + if want := tt.completion; !equal(got, want) { + t.Errorf("Failed %s: completion = %q, want %q", t.Name(), got, want) + } + }) + } +} + +func BenchmarkFake(b *testing.B) {} +func Example() {} + +func equal(s1, s2 []string) bool { + if len(s1) != len(s2) { + return false + } + for i := range s1 { + if s1[i] != s2[i] { + return false + } + } + return true +} -- cgit v1.2.3 From 3dd16239eed7e1e8d1513750419d3b637a8ec79b Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Mon, 15 May 2017 23:01:05 +0300 Subject: Add example test to increase coverate --- gocomplete/tests_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gocomplete/tests_test.go') diff --git a/gocomplete/tests_test.go b/gocomplete/tests_test.go index 4eb2308..f1b294a 100644 --- a/gocomplete/tests_test.go +++ b/gocomplete/tests_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/posener/complete" + "os" ) func TestPredictions(t *testing.T) { @@ -69,7 +70,13 @@ func TestPredictions(t *testing.T) { } func BenchmarkFake(b *testing.B) {} -func Example() {} + +func Example() { + os.Setenv("COMP_LINE", "go ru") + main() + // output: run + +} func equal(s1, s2 []string) bool { if len(s1) != len(s2) { -- cgit v1.2.3