mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 17:51:57 +00:00
misc improvements to graphqlbackend (#63943)
- skip graphqlbackend tests that use the DB when using `go test -short` - fix race condition in (settingsResolver).Author - fix OrgMembers.GetByOrgIDAndUserID mocks: The actual function returns a non-nil error (`database.ErrOrgMemberNotFound` type) when the user is not an org member. Our mocks should do the same for correctness. ## Test plan CI
This commit is contained in:
parent
9491958e78
commit
0e958d19d6
@ -35,7 +35,7 @@ func (r *defaultSettingsResolver) LatestSettings(_ context.Context) (*settingsRe
|
||||
Subject: api.SettingsSubject{Default: true},
|
||||
Contents: `{"experimentalFeatures": {}}`,
|
||||
}
|
||||
return &settingsResolver{r.db, &settingsSubjectResolver{defaultSettings: r}, settings, nil}, nil
|
||||
return &settingsResolver{db: r.db, subject: &settingsSubjectResolver{defaultSettings: r}, settings: settings}, nil
|
||||
}
|
||||
|
||||
func (r *defaultSettingsResolver) SettingsURL() *string { return nil }
|
||||
|
||||
@ -253,7 +253,7 @@ func (o *OrgResolver) LatestSettings(ctx context.Context) (*settingsResolver, er
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return &settingsResolver{o.db, &settingsSubjectResolver{org: o}, settings, nil}, nil
|
||||
return &settingsResolver{db: o.db, subject: &settingsSubjectResolver{org: o}, settings: settings}, nil
|
||||
}
|
||||
|
||||
func (o *OrgResolver) SettingsCascade() *settingsCascade {
|
||||
|
||||
@ -31,7 +31,7 @@ func TestOrganization(t *testing.T) {
|
||||
users.GetByCurrentAuthUserFunc.SetDefaultReturn(&types.User{ID: 1}, nil)
|
||||
|
||||
orgMembers := dbmocks.NewMockOrgMemberStore()
|
||||
orgMembers.GetByOrgIDAndUserIDFunc.SetDefaultReturn(nil, nil)
|
||||
orgMembers.GetByOrgIDAndUserIDFunc.SetDefaultReturn(nil, &database.ErrOrgMemberNotFound{})
|
||||
|
||||
orgs := dbmocks.NewMockOrgStore()
|
||||
mockedOrg := types.Org{ID: 1, Name: "acme"}
|
||||
|
||||
@ -21,6 +21,10 @@ import (
|
||||
)
|
||||
|
||||
func TestPreviewRepositoryComparisonResolver(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
logger := logtest.Scoped(t)
|
||||
ctx := context.Background()
|
||||
db := database.NewDB(logger, nil)
|
||||
|
||||
@ -61,6 +61,10 @@ func TestRepositoryComparisonNoMergeBase(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRepositoryComparisonRootCommit(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
logger := logtest.Scoped(t)
|
||||
ctx := context.Background()
|
||||
db := database.NewDB(logger, nil)
|
||||
@ -94,6 +98,10 @@ func TestRepositoryComparisonRootCommit(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRepositoryComparison(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
logger := logtest.Scoped(t)
|
||||
ctx := context.Background()
|
||||
db := database.NewDB(logger, nil)
|
||||
|
||||
@ -20,6 +20,10 @@ import (
|
||||
)
|
||||
|
||||
func TestRetrievingAndDeduplicatingIndexedRefs(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
logger := logtest.Scoped(t)
|
||||
db := database.NewDB(logger, nil)
|
||||
defaultBranchRef := "refs/heads/main"
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"os"
|
||||
"strconv"
|
||||
"sync"
|
||||
|
||||
"github.com/sourcegraph/sourcegraph/internal/api"
|
||||
"github.com/sourcegraph/sourcegraph/internal/database"
|
||||
@ -17,7 +18,10 @@ type settingsResolver struct {
|
||||
db database.DB
|
||||
subject *settingsSubjectResolver
|
||||
settings *api.Settings
|
||||
user *types.User
|
||||
|
||||
authorUserOnce sync.Once
|
||||
authorUser *types.User
|
||||
authorUserErr error
|
||||
}
|
||||
|
||||
func (o *settingsResolver) ID() int32 {
|
||||
@ -45,14 +49,14 @@ func (o *settingsResolver) Author(ctx context.Context) (*UserResolver, error) {
|
||||
if o.settings.AuthorUserID == nil {
|
||||
return nil, nil
|
||||
}
|
||||
if o.user == nil {
|
||||
var err error
|
||||
o.user, err = o.db.Users().GetByID(ctx, *o.settings.AuthorUserID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
o.authorUserOnce.Do(func() {
|
||||
o.authorUser, o.authorUserErr = o.db.Users().GetByID(ctx, *o.settings.AuthorUserID)
|
||||
})
|
||||
if o.authorUserErr != nil {
|
||||
return nil, o.authorUserErr
|
||||
}
|
||||
return NewUserResolver(ctx, o.db, o.user), nil
|
||||
return NewUserResolver(ctx, o.db, o.authorUser), nil
|
||||
}
|
||||
|
||||
var globalSettingsAllowEdits, _ = strconv.ParseBool(env.Get("GLOBAL_SETTINGS_ALLOW_EDITS", "false", "When GLOBAL_SETTINGS_FILE is in use, allow edits in the application to be made which will be overwritten on next process restart"))
|
||||
|
||||
@ -156,7 +156,7 @@ func (r *siteResolver) LatestSettings(ctx context.Context) (*settingsResolver, e
|
||||
if settings == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return &settingsResolver{r.db, &settingsSubjectResolver{site: r}, settings, nil}, nil
|
||||
return &settingsResolver{db: r.db, subject: &settingsSubjectResolver{site: r}, settings: settings}, nil
|
||||
}
|
||||
|
||||
func (r *siteResolver) SettingsCascade() *settingsCascade {
|
||||
|
||||
@ -307,7 +307,7 @@ func TestDeleteOrganization_OnPremise(t *testing.T) {
|
||||
users.GetByCurrentAuthUserFunc.SetDefaultReturn(&types.User{ID: 1}, nil)
|
||||
|
||||
orgMembers := dbmocks.NewMockOrgMemberStore()
|
||||
orgMembers.GetByOrgIDAndUserIDFunc.SetDefaultReturn(nil, nil)
|
||||
orgMembers.GetByOrgIDAndUserIDFunc.SetDefaultReturn(nil, &database.ErrOrgMemberNotFound{})
|
||||
|
||||
orgs := dbmocks.NewMockOrgStore()
|
||||
|
||||
|
||||
@ -393,7 +393,7 @@ func (r *UserResolver) LatestSettings(ctx context.Context) (*settingsResolver, e
|
||||
if settings == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return &settingsResolver{r.db, &settingsSubjectResolver{user: r}, settings, nil}, nil
|
||||
return &settingsResolver{db: r.db, subject: &settingsSubjectResolver{user: r}, settings: settings}, nil
|
||||
}
|
||||
|
||||
func (r *UserResolver) SettingsCascade() *settingsCascade {
|
||||
|
||||
@ -103,7 +103,7 @@ func TestPrompts(t *testing.T) {
|
||||
orgID := int32(2)
|
||||
om := dbmocks.NewMockOrgMemberStore()
|
||||
om.GetByOrgIDAndUserIDFunc.SetDefaultHook(func(ctx context.Context, oid, uid int32) (*types.OrgMembership, error) {
|
||||
return nil, nil
|
||||
return nil, &database.ErrOrgMemberNotFound{}
|
||||
})
|
||||
|
||||
ss := dbmocks.NewMockPromptStore()
|
||||
@ -551,7 +551,7 @@ func TestPromptPermissions(t *testing.T) {
|
||||
if orgID == userID {
|
||||
return &types.OrgMembership{}, nil
|
||||
}
|
||||
return nil, nil
|
||||
return nil, &database.ErrOrgMemberNotFound{}
|
||||
})
|
||||
|
||||
db := dbmocks.NewMockDB()
|
||||
|
||||
@ -104,7 +104,7 @@ func TestSavedSearches(t *testing.T) {
|
||||
orgID := int32(2)
|
||||
om := dbmocks.NewMockOrgMemberStore()
|
||||
om.GetByOrgIDAndUserIDFunc.SetDefaultHook(func(ctx context.Context, oid, uid int32) (*types.OrgMembership, error) {
|
||||
return nil, nil
|
||||
return nil, &database.ErrOrgMemberNotFound{}
|
||||
})
|
||||
|
||||
ss := dbmocks.NewMockSavedSearchStore()
|
||||
@ -582,7 +582,7 @@ func TestSavedSearchPermissions(t *testing.T) {
|
||||
if orgID == userID {
|
||||
return &types.OrgMembership{}, nil
|
||||
}
|
||||
return nil, nil
|
||||
return nil, &database.ErrOrgMemberNotFound{}
|
||||
})
|
||||
|
||||
db := dbmocks.NewMockDB()
|
||||
|
||||
@ -45,7 +45,7 @@ func TestEnsureActorHasNamespaceWriteAccess(t *testing.T) {
|
||||
// Is a member.
|
||||
return &types.OrgMembership{}, nil
|
||||
}
|
||||
return nil, nil
|
||||
return nil, &database.ErrOrgMemberNotFound{}
|
||||
})
|
||||
db.OrgMembersFunc.SetDefaultReturn(om)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user