Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3464327

Browse files
committed
add test
1 parenteebc886 commit3464327

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

‎coderd/provisionerdserver/provisionerdserver.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,8 +1468,8 @@ func (server *Server) regenerateSessionToken(ctx context.Context, user database.
14681468
_,err=tx.InsertAPIKey(ctx, database.InsertAPIKeyParams{
14691469
ID:id,
14701470
UserID:workspace.OwnerID,
1471-
LifetimeSeconds:int64(server.DeploymentValues.SessionDuration.Value().Seconds()),
1472-
ExpiresAt:database.Now().Add(server.DeploymentValues.SessionDuration.Value()).UTC(),
1471+
LifetimeSeconds:int64(server.DeploymentValues.MaxTokenLifetime.Value().Seconds()),
1472+
ExpiresAt:database.Now().Add(server.DeploymentValues.MaxTokenLifetime.Value()).UTC(),
14731473
IPAddress: pqtype.Inet{
14741474
IPNet: net.IPNet{
14751475
IP:ip,
@@ -1484,6 +1484,9 @@ func (server *Server) regenerateSessionToken(ctx context.Context, user database.
14841484
Scope:database.APIKeyScopeAll,
14851485
TokenName:workspaceSessionTokenName(workspace),
14861486
})
1487+
iferr!=nil {
1488+
returnxerrors.Errorf("insert API key: %w",err)
1489+
}
14871490

14881491
returnnil
14891492
},nil)

‎coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"database/sql"
66
"encoding/json"
77
"net/url"
8+
"strings"
89
"sync/atomic"
910
"testing"
1011
"time"
@@ -15,6 +16,7 @@ import (
1516
"golang.org/x/oauth2"
1617

1718
"cdr.dev/slog/sloggers/slogtest"
19+
"github.com/coder/coder/cli/clibase"
1820
"github.com/coder/coder/coderd/audit"
1921
"github.com/coder/coder/coderd/database"
2022
"github.com/coder/coder/coderd/database/dbfake"
@@ -61,6 +63,7 @@ func TestAcquireJob(t *testing.T) {
6163
Auditor:mockAuditor(),
6264
TemplateScheduleStore:testTemplateScheduleStore(),
6365
Tracer:trace.NewNoopTracerProvider().Tracer("noop"),
66+
DeploymentValues:&codersdk.DeploymentValues{},
6467
}
6568
job,err:=srv.AcquireJob(context.Background(),nil)
6669
require.NoError(t,err)
@@ -102,6 +105,10 @@ func TestAcquireJob(t *testing.T) {
102105
t.Parallel()
103106
srv:=setup(t,false)
104107
gitAuthProvider:="github"
108+
// Set the max session token lifetime so we can assert we
109+
// create an API key with an expiration within the bounds of the
110+
// deployment config.
111+
srv.DeploymentValues.MaxTokenLifetime=clibase.Duration(time.Hour)
105112
srv.GitAuthConfigs= []*gitauth.Config{{
106113
ID:gitAuthProvider,
107114
OAuth2Config:&testutil.OAuth2Config{},
@@ -216,6 +223,16 @@ func TestAcquireJob(t *testing.T) {
216223
got,err:=json.Marshal(job.Type)
217224
require.NoError(t,err)
218225

226+
// Validate that a session token is generated during the job.
227+
sessionToken:=job.Type.(*proto.AcquiredJob_WorkspaceBuild_).WorkspaceBuild.Metadata.CoderSessionToken
228+
require.NotEmpty(t,sessionToken)
229+
toks:=strings.Split(sessionToken,"-")
230+
require.Len(t,toks,2,"invalid api key")
231+
key,err:=srv.Database.GetAPIKeyByID(ctx,toks[0])
232+
require.NoError(t,err)
233+
require.Equal(t,int64(srv.DeploymentValues.MaxTokenLifetime.Value().Seconds()),key.LifetimeSeconds)
234+
require.WithinDuration(t,time.Now().Add(srv.DeploymentValues.MaxTokenLifetime.Value()),key.ExpiresAt,time.Minute)
235+
219236
want,err:=json.Marshal(&proto.AcquiredJob_WorkspaceBuild_{
220237
WorkspaceBuild:&proto.AcquiredJob_WorkspaceBuild{
221238
WorkspaceBuildId:build.ID.String(),
@@ -247,6 +264,7 @@ func TestAcquireJob(t *testing.T) {
247264
WorkspaceOwnerId:user.ID.String(),
248265
TemplateName:template.Name,
249266
TemplateVersion:version.Name,
267+
CoderSessionToken:sessionToken,
250268
},
251269
},
252270
})
@@ -1205,6 +1223,7 @@ func setup(t *testing.T, ignoreLogErrors bool) *provisionerdserver.Server {
12051223
Auditor:mockAuditor(),
12061224
TemplateScheduleStore:testTemplateScheduleStore(),
12071225
Tracer:trace.NewNoopTracerProvider().Tracer("noop"),
1226+
DeploymentValues:&codersdk.DeploymentValues{},
12081227
}
12091228
}
12101229

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp