test: ensure RequireActiveVersion is actually set when testing with AGPL store (#12843)

This commit is contained in:
Kayla Washburn-Love
2024-04-02 11:29:22 -06:00
committed by GitHub
parent 7698cfda72
commit f705f9a5eb
+12 -4
View File
@@ -17,6 +17,7 @@ import (
"github.com/coder/coder/v2/coderd/autobuild" "github.com/coder/coder/v2/coderd/autobuild"
"github.com/coder/coder/v2/coderd/coderdtest" "github.com/coder/coder/v2/coderd/coderdtest"
"github.com/coder/coder/v2/coderd/database" "github.com/coder/coder/v2/coderd/database"
"github.com/coder/coder/v2/coderd/database/dbauthz"
"github.com/coder/coder/v2/coderd/schedule" "github.com/coder/coder/v2/coderd/schedule"
"github.com/coder/coder/v2/coderd/schedule/cron" "github.com/coder/coder/v2/coderd/schedule/cron"
"github.com/coder/coder/v2/coderd/util/ptr" "github.com/coder/coder/v2/coderd/util/ptr"
@@ -849,14 +850,17 @@ func TestExecutorRequireActiveVersion(t *testing.T) {
ticker = make(chan time.Time) ticker = make(chan time.Time)
statCh = make(chan autobuild.Stats) statCh = make(chan autobuild.Stats)
ownerClient = coderdtest.New(t, &coderdtest.Options{ ownerClient, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{
AutobuildTicker: ticker, AutobuildTicker: ticker,
IncludeProvisionerDaemon: true, IncludeProvisionerDaemon: true,
AutobuildStats: statCh, AutobuildStats: statCh,
TemplateScheduleStore: schedule.NewAGPLTemplateScheduleStore(), TemplateScheduleStore: schedule.NewAGPLTemplateScheduleStore(),
}) })
) )
ctx := testutil.Context(t, testutil.WaitShort)
owner := coderdtest.CreateFirstUser(t, ownerClient) owner := coderdtest.CreateFirstUser(t, ownerClient)
me, err := ownerClient.User(ctx, codersdk.Me)
require.NoError(t, err)
// Create an active and inactive template version. We'll // Create an active and inactive template version. We'll
// build a regular member's workspace using a non-active // build a regular member's workspace using a non-active
@@ -864,10 +868,14 @@ func TestExecutorRequireActiveVersion(t *testing.T) {
// since there is no enterprise license. // since there is no enterprise license.
activeVersion := coderdtest.CreateTemplateVersion(t, ownerClient, owner.OrganizationID, nil) activeVersion := coderdtest.CreateTemplateVersion(t, ownerClient, owner.OrganizationID, nil)
coderdtest.AwaitTemplateVersionJobCompleted(t, ownerClient, activeVersion.ID) coderdtest.AwaitTemplateVersionJobCompleted(t, ownerClient, activeVersion.ID)
template := coderdtest.CreateTemplate(t, ownerClient, owner.OrganizationID, activeVersion.ID, func(ctr *codersdk.CreateTemplateRequest) { template := coderdtest.CreateTemplate(t, ownerClient, owner.OrganizationID, activeVersion.ID)
ctr.RequireActiveVersion = true //nolint We need to set this in the database directly, because the API will return an error
ctr.VersionID = activeVersion.ID // letting you know that this feature requires an enterprise license.
err = db.UpdateTemplateAccessControlByID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(me, owner.OrganizationID)), database.UpdateTemplateAccessControlByIDParams{
ID: template.ID,
RequireActiveVersion: true,
}) })
require.NoError(t, err)
inactiveVersion := coderdtest.CreateTemplateVersion(t, ownerClient, owner.OrganizationID, nil, func(ctvr *codersdk.CreateTemplateVersionRequest) { inactiveVersion := coderdtest.CreateTemplateVersion(t, ownerClient, owner.OrganizationID, nil, func(ctvr *codersdk.CreateTemplateVersionRequest) {
ctvr.TemplateID = template.ID ctvr.TemplateID = template.ID
}) })