golang.org/x/tools/gopls@v0.15.3/internal/test/integration/inlayhints/inlayhints_test.go (about) 1 // Copyright 2022 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 package inlayhint 5 6 import ( 7 "testing" 8 9 "golang.org/x/tools/gopls/internal/golang" 10 "golang.org/x/tools/gopls/internal/hooks" 11 . "golang.org/x/tools/gopls/internal/test/integration" 12 "golang.org/x/tools/gopls/internal/util/bug" 13 ) 14 15 func TestMain(m *testing.M) { 16 bug.PanicOnBugs = true 17 Main(m, hooks.Options) 18 } 19 20 func TestEnablingInlayHints(t *testing.T) { 21 const workspace = ` 22 -- go.mod -- 23 module inlayHint.test 24 go 1.12 25 -- lib.go -- 26 package lib 27 type Number int 28 const ( 29 Zero Number = iota 30 One 31 Two 32 ) 33 ` 34 tests := []struct { 35 label string 36 enabled map[string]bool 37 wantInlayHint bool 38 }{ 39 { 40 label: "default", 41 wantInlayHint: false, 42 }, 43 { 44 label: "enable const", 45 enabled: map[string]bool{golang.ConstantValues: true}, 46 wantInlayHint: true, 47 }, 48 { 49 label: "enable parameter names", 50 enabled: map[string]bool{golang.ParameterNames: true}, 51 wantInlayHint: false, 52 }, 53 } 54 for _, test := range tests { 55 t.Run(test.label, func(t *testing.T) { 56 WithOptions( 57 Settings{ 58 "hints": test.enabled, 59 }, 60 ).Run(t, workspace, func(t *testing.T, env *Env) { 61 env.OpenFile("lib.go") 62 lens := env.InlayHints("lib.go") 63 if gotInlayHint := len(lens) > 0; gotInlayHint != test.wantInlayHint { 64 t.Errorf("got inlayHint: %t, want %t", gotInlayHint, test.wantInlayHint) 65 } 66 }) 67 }) 68 } 69 }