mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
fix: fix TestServiceBanners/Agent (#11768)
The original test is bugged in that it 1. creates a new AGPL coderd with a new database, so no appearance is set in the DB. 2. overwrites the agentClient so the assertion after removing the license is against the AGPL coderd
This commit is contained in:
@ -6,7 +6,11 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/coder/coder/v2/coderd/database/dbtestutil"
|
||||||
|
|
||||||
|
"github.com/coder/coder/v2/coderd/database"
|
||||||
|
"github.com/coder/coder/v2/coderd/database/dbfake"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
@ -17,7 +21,6 @@ import (
|
|||||||
"github.com/coder/coder/v2/enterprise/coderd"
|
"github.com/coder/coder/v2/enterprise/coderd"
|
||||||
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
|
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
|
||||||
"github.com/coder/coder/v2/enterprise/coderd/license"
|
"github.com/coder/coder/v2/enterprise/coderd/license"
|
||||||
"github.com/coder/coder/v2/provisioner/echo"
|
|
||||||
"github.com/coder/coder/v2/testutil"
|
"github.com/coder/coder/v2/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -125,13 +128,15 @@ func TestServiceBanners(t *testing.T) {
|
|||||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
|
store, ps := dbtestutil.NewDB(t)
|
||||||
client, user := coderdenttest.New(t, &coderdenttest.Options{
|
client, user := coderdenttest.New(t, &coderdenttest.Options{
|
||||||
Options: &coderdtest.Options{
|
Options: &coderdtest.Options{
|
||||||
IncludeProvisionerDaemon: true,
|
Database: store,
|
||||||
|
Pubsub: ps,
|
||||||
},
|
},
|
||||||
DontAddLicense: true,
|
DontAddLicense: true,
|
||||||
})
|
})
|
||||||
license := coderdenttest.AddLicense(t, client, coderdenttest.LicenseOptions{
|
lic := coderdenttest.AddLicense(t, client, coderdenttest.LicenseOptions{
|
||||||
Features: license.Features{
|
Features: license.Features{
|
||||||
codersdk.FeatureAppearance: 1,
|
codersdk.FeatureAppearance: 1,
|
||||||
},
|
},
|
||||||
@ -146,35 +151,28 @@ func TestServiceBanners(t *testing.T) {
|
|||||||
err := client.UpdateAppearance(ctx, cfg)
|
err := client.UpdateAppearance(ctx, cfg)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
authToken := uuid.NewString()
|
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
|
||||||
agentClient := agentsdk.New(client.URL)
|
OrganizationID: user.OrganizationID,
|
||||||
agentClient.SetSessionToken(authToken)
|
OwnerID: user.UserID,
|
||||||
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
|
}).WithAgent().Do()
|
||||||
Parse: echo.ParseComplete,
|
|
||||||
ProvisionPlan: echo.PlanComplete,
|
|
||||||
ProvisionApply: echo.ProvisionApplyWithAgent(authToken),
|
|
||||||
})
|
|
||||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
|
|
||||||
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
|
|
||||||
workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
|
|
||||||
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
|
|
||||||
|
|
||||||
|
agentClient := agentsdk.New(client.URL)
|
||||||
|
agentClient.SetSessionToken(r.AgentToken)
|
||||||
banner, err := agentClient.GetServiceBanner(ctx)
|
banner, err := agentClient.GetServiceBanner(ctx)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, cfg.ServiceBanner, banner)
|
require.Equal(t, cfg.ServiceBanner, banner)
|
||||||
|
|
||||||
// No enterprise means a 404 on the endpoint meaning no banner.
|
// Create an AGPL Coderd against the same database
|
||||||
client = coderdtest.New(t, &coderdtest.Options{
|
agplClient := coderdtest.New(t, &coderdtest.Options{Database: store, Pubsub: ps})
|
||||||
IncludeProvisionerDaemon: true,
|
agplAgentClient := agentsdk.New(agplClient.URL)
|
||||||
})
|
agplAgentClient.SetSessionToken(r.AgentToken)
|
||||||
agentClient = agentsdk.New(client.URL)
|
banner, err = agplAgentClient.GetServiceBanner(ctx)
|
||||||
agentClient.SetSessionToken(authToken)
|
|
||||||
banner, err = agentClient.GetServiceBanner(ctx)
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, codersdk.ServiceBannerConfig{}, banner)
|
require.Equal(t, codersdk.ServiceBannerConfig{}, banner)
|
||||||
|
|
||||||
// No license means no banner.
|
// No license means no banner.
|
||||||
client.DeleteLicense(ctx, license.ID)
|
err = client.DeleteLicense(ctx, lic.ID)
|
||||||
|
require.NoError(t, err)
|
||||||
banner, err = agentClient.GetServiceBanner(ctx)
|
banner, err = agentClient.GetServiceBanner(ctx)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, codersdk.ServiceBannerConfig{}, banner)
|
require.Equal(t, codersdk.ServiceBannerConfig{}, banner)
|
||||||
|
Reference in New Issue
Block a user