Revert "chore: Implement joins with golang templates (#6429)" (#6560)

This reverts commit 8b125d6c5d.
This commit is contained in:
Kyle Carberry
2023-03-10 10:39:02 -06:00
committed by GitHub
parent a8433b18e4
commit 7eb2c2ff6d
36 changed files with 660 additions and 894 deletions
+14 -28
View File
@@ -153,34 +153,20 @@ func Workspace(t testing.TB, db database.Store, orig database.Workspace) databas
return workspace
}
type AnyWorkspaceBuild interface {
database.WorkspaceBuildRBAC | database.WorkspaceBuild
}
func WorkspaceBuild[B AnyWorkspaceBuild](t testing.TB, db database.Store, orig B) database.WorkspaceBuild {
var thin database.WorkspaceBuild
switch v := any(orig).(type) {
case database.WorkspaceBuildRBAC:
thin = v.WorkspaceBuild
case database.WorkspaceBuild:
thin = v
default:
panic(fmt.Sprintf("developer error: invalid type %T", v))
}
func WorkspaceBuild(t testing.TB, db database.Store, orig database.WorkspaceBuild) database.WorkspaceBuild {
build, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{
ID: takeFirst(thin.ID, uuid.New()),
CreatedAt: takeFirst(thin.CreatedAt, database.Now()),
UpdatedAt: takeFirst(thin.UpdatedAt, database.Now()),
WorkspaceID: takeFirst(thin.WorkspaceID, uuid.New()),
TemplateVersionID: takeFirst(thin.TemplateVersionID, uuid.New()),
BuildNumber: takeFirst(thin.BuildNumber, 1),
Transition: takeFirst(thin.Transition, database.WorkspaceTransitionStart),
InitiatorID: takeFirst(thin.InitiatorID, uuid.New()),
JobID: takeFirst(thin.JobID, uuid.New()),
ProvisionerState: takeFirstSlice(thin.ProvisionerState, []byte{}),
Deadline: takeFirst(thin.Deadline, database.Now().Add(time.Hour)),
MaxDeadline: takeFirst(thin.MaxDeadline, database.Now().Add(time.Hour*24*7)),
Reason: takeFirst(thin.Reason, database.BuildReasonInitiator),
ID: takeFirst(orig.ID, uuid.New()),
CreatedAt: takeFirst(orig.CreatedAt, database.Now()),
UpdatedAt: takeFirst(orig.UpdatedAt, database.Now()),
WorkspaceID: takeFirst(orig.WorkspaceID, uuid.New()),
TemplateVersionID: takeFirst(orig.TemplateVersionID, uuid.New()),
BuildNumber: takeFirst(orig.BuildNumber, 1),
Transition: takeFirst(orig.Transition, database.WorkspaceTransitionStart),
InitiatorID: takeFirst(orig.InitiatorID, uuid.New()),
JobID: takeFirst(orig.JobID, uuid.New()),
ProvisionerState: takeFirstSlice(orig.ProvisionerState, []byte{}),
Deadline: takeFirst(orig.Deadline, database.Now().Add(time.Hour)),
Reason: takeFirst(orig.Reason, database.BuildReasonInitiator),
})
require.NoError(t, err, "insert workspace build")
return build
@@ -233,7 +219,7 @@ func OrganizationMember(t testing.TB, db database.Store, orig database.Organizat
UpdatedAt: takeFirst(orig.UpdatedAt, database.Now()),
Roles: takeFirstSlice(orig.Roles, []string{}),
})
require.NoError(t, err, "insert organization member")
require.NoError(t, err, "insert organization")
return mem
}
+2 -2
View File
@@ -166,8 +166,8 @@ func TestGenerator(t *testing.T) {
t.Run("WorkspaceBuild", func(t *testing.T) {
t.Parallel()
db := dbfake.New()
exp := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuildRBAC{})
require.Equal(t, exp, must(db.GetWorkspaceBuildByID(context.Background(), exp.ID)).WorkspaceBuild)
exp := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{})
require.Equal(t, exp, must(db.GetWorkspaceBuildByID(context.Background(), exp.ID)))
})
t.Run("User", func(t *testing.T) {
+1 -6
View File
@@ -13,14 +13,9 @@ func takeFirstIP(values ...net.IPNet) net.IPNet {
// takeFirstSlice implements takeFirst for []any.
// []any is not a comparable type.
func takeFirstSlice[T any](values ...[]T) []T {
out := takeFirstF(values, func(v []T) bool {
return takeFirstF(values, func(v []T) bool {
return len(v) != 0
})
// Prevent nil slices
if out == nil {
return []T{}
}
return out
}
// takeFirstF takes the first value that returns true