Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / internal / lsp / cache / error_test.go
1 // Copyright 2019 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package cache
6
7 import (
8         "strings"
9         "testing"
10 )
11
12 func TestParseErrorMessage(t *testing.T) {
13         tests := []struct {
14                 name             string
15                 in               string
16                 expectedFileName string
17                 expectedLine     int
18                 expectedColumn   int
19         }{
20                 {
21                         name:             "from go list output",
22                         in:               "\nattributes.go:13:1: expected 'package', found 'type'",
23                         expectedFileName: "attributes.go",
24                         expectedLine:     13,
25                         expectedColumn:   1,
26                 },
27         }
28
29         for _, tt := range tests {
30                 t.Run(tt.name, func(t *testing.T) {
31                         spn := parseGoListError(tt.in)
32                         fn := spn.URI().Filename()
33
34                         if !strings.HasSuffix(fn, tt.expectedFileName) {
35                                 t.Errorf("expected filename with suffix %v but got %v", tt.expectedFileName, fn)
36                         }
37
38                         if !spn.HasPosition() {
39                                 t.Fatalf("expected span to have position")
40                         }
41
42                         pos := spn.Start()
43                         if pos.Line() != tt.expectedLine {
44                                 t.Errorf("expected line %v but got %v", tt.expectedLine, pos.Line())
45                         }
46
47                         if pos.Column() != tt.expectedColumn {
48                                 t.Errorf("expected line %v but got %v", tt.expectedLine, pos.Line())
49                         }
50                 })
51         }
52 }