chore(codeintel): Move mock generation near interface package (#64000)

This patch moves the mocks for `codenav/../lsifstore` package to a
separate package `lsifstore/mocks` instead of it living in `codenav`.
The problem is that if you update the `LsifStore` interface, then you
get an error when trying to regenerate mocks, as regeneration happens
in the `codenav` package, and that package's old mocks no longer
satisfy the new interface (so there is an error when looking at other test
files). Moving the codegen to a separate package avoids this problem.
This commit is contained in:
Varun Gandhi 2024-07-23 16:24:53 +08:00 committed by GitHub
parent b2014e6abb
commit 548cb609f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 1976 additions and 1925 deletions

View File

@ -128,5 +128,6 @@ write_source_files(
"//internal/releaseregistry/mocks:generate_mocks",
"//internal/object/mocks:generate_mocks",
"//internal/object:generate_mocks",
"//internal/codeintel/codenav/internal/lsifstore/mocks:generate_mocks",
],
)

View File

@ -86,6 +86,7 @@ go_test(
"//internal/api",
"//internal/authz",
"//internal/codeintel/codenav/internal/lsifstore",
"//internal/codeintel/codenav/internal/lsifstore/mocks",
"//internal/codeintel/codenav/shared",
"//internal/codeintel/core",
"//internal/codeintel/uploads/shared",
@ -118,8 +119,5 @@ go_mockgen(
"//:mockgen.test.yaml",
"//:mockgen.temp.yaml",
],
deps = [
":codenav",
"//internal/codeintel/codenav/internal/lsifstore",
],
deps = [":codenav"],
)

View File

@ -10,6 +10,7 @@ import (
"github.com/sourcegraph/sourcegraph/internal/api"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
@ -93,7 +94,7 @@ func doc(path string, occurrences ...fakeOccurrence) fakeDocument {
// Set up uploads + lsifstore
func setupUpload(commit api.CommitID, root string, documents ...fakeDocument) (uploadsshared.CompletedUpload, lsifstore.LsifStore) {
id := newUploadID()
lsifStore := NewMockLsifStore()
lsifStore := lsifstoremocks.NewMockLsifStore()
lsifStore.SCIPDocumentFunc.SetDefaultHook(func(ctx context.Context, uploadId int, path core.UploadRelPath) (core.Option[*scip.Document], error) {
if id != uploadId {
return core.None[*scip.Document](), errors.New("unknown upload id")

View File

@ -0,0 +1,27 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//dev:go_mockgen.bzl", "go_mockgen")
go_library(
name = "mocks",
srcs = ["mocks_temp.go"],
importpath = "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks",
visibility = ["//:__subpackages__"],
deps = [
"//internal/codeintel/codenav/internal/lsifstore",
"//internal/codeintel/codenav/shared",
"//internal/codeintel/core",
"//lib/codeintel/precise",
"@com_github_sourcegraph_scip//bindings/go/scip",
],
)
go_mockgen(
name = "generate_mocks",
out = "mocks_temp.go",
manifests = [
"//:mockgen.yaml",
"//:mockgen.test.yaml",
"//:mockgen.temp.yaml",
],
deps = ["//internal/codeintel/codenav/internal/lsifstore"],
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,7 @@ import (
"github.com/stretchr/testify/require"
"github.com/sourcegraph/sourcegraph/internal/api"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
"github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
"github.com/sourcegraph/sourcegraph/internal/collections"
@ -66,7 +67,7 @@ func TestGetClosestCompletedUploadsForBlob(t *testing.T) {
for _, testCase := range testCases {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()

View File

@ -9,6 +9,7 @@ import (
"github.com/sourcegraph/sourcegraph/internal/actor"
"github.com/sourcegraph/sourcegraph/internal/authz"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
@ -25,7 +26,7 @@ var uploadRelPath = core.NewUploadRelPathUnchecked
func TestDiagnostics(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -101,7 +102,7 @@ func TestDiagnostics(t *testing.T) {
func TestDiagnosticsWithSubRepoPermissions(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()

View File

@ -8,6 +8,7 @@ import (
"github.com/sourcegraph/log"
"github.com/sourcegraph/sourcegraph/internal/api"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
@ -22,7 +23,7 @@ import (
func TestHover(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -79,7 +80,7 @@ func TestHover(t *testing.T) {
func TestHoverRemote(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()

View File

@ -8,6 +8,7 @@ import (
"github.com/sourcegraph/log"
"github.com/sourcegraph/sourcegraph/internal/api"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
"github.com/sourcegraph/sourcegraph/internal/gitserver"
@ -22,7 +23,7 @@ func TestGetDefinitions(t *testing.T) {
t.Run("local", func(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -85,7 +86,7 @@ func TestGetDefinitions(t *testing.T) {
t.Run("remote", func(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -208,7 +209,7 @@ func TestGetReferences(t *testing.T) {
t.Run("local", func(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -274,7 +275,7 @@ func TestGetReferences(t *testing.T) {
t.Run("remote", func(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -456,7 +457,7 @@ func TestGetImplementations(t *testing.T) {
t.Run("local", func(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()

View File

@ -11,6 +11,7 @@ import (
"github.com/sourcegraph/log"
"github.com/sourcegraph/sourcegraph/internal/api"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
@ -39,7 +40,7 @@ index deadbeef1..deadbeef2 100644
func TestRanges(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockGitserverClient.DiffFunc.SetDefaultHook(func(ctx context.Context, repo api.RepoName, opt gitserver.DiffOptions) (*gitserver.DiffFileIterator, error) {

View File

@ -10,6 +10,7 @@ import (
"github.com/sourcegraph/log"
"github.com/sourcegraph/scip/bindings/go/scip"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/core"
"github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
"github.com/sourcegraph/sourcegraph/internal/gitserver"
@ -25,7 +26,7 @@ type banana struct{}`
func TestSnapshotForDocument(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockGitserverClient.DiffFunc.SetDefaultReturn(gitserver.NewDiffFileIterator(io.NopCloser(strings.NewReader(""))), nil)

View File

@ -7,6 +7,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/sourcegraph/log"
lsifstoremocks "github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore/mocks"
"github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/shared"
uploadsshared "github.com/sourcegraph/sourcegraph/internal/codeintel/uploads/shared"
"github.com/sourcegraph/sourcegraph/internal/gitserver"
@ -18,7 +19,7 @@ import (
func TestStencil(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()
@ -79,7 +80,7 @@ func TestStencil(t *testing.T) {
func TestStencilWithDuplicateRanges(t *testing.T) {
// Set up mocks
mockRepoStore := defaultMockRepoStore()
mockLsifStore := NewMockLsifStore()
mockLsifStore := lsifstoremocks.NewMockLsifStore()
mockUploadSvc := NewMockUploadService()
mockGitserverClient := gitserver.NewMockClient()
mockSearchClient := client.NewMockSearchClient()

View File

@ -170,10 +170,12 @@
- RepositoryServiceClient
- filename: internal/codeintel/codenav/mocks_temp.go
sources:
- path: github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore
interfaces:
- LsifStore
- path: github.com/sourcegraph/sourcegraph/internal/codeintel/codenav
interfaces:
- UploadService
- GitTreeTranslator
- filename: internal/codeintel/codenav/internal/lsifstore/mocks/mocks_temp.go
sources:
- path: github.com/sourcegraph/sourcegraph/internal/codeintel/codenav/internal/lsifstore
interfaces:
- LsifStore