@@ -13,6 +13,7 @@ import (
1313"github.com/coder/coder/v2/coderd/database"
1414"github.com/coder/coder/v2/coderd/database/dbgen"
1515"github.com/coder/coder/v2/coderd/database/dbtestutil"
16+ "github.com/coder/coder/v2/coderd/rbac"
1617"github.com/coder/coder/v2/codersdk"
1718"github.com/coder/coder/v2/provisioner/echo"
1819"github.com/coder/coder/v2/provisionersdk/proto"
@@ -22,37 +23,16 @@ import (
2223func TestProvisionerJobs (t * testing.T ) {
2324t .Parallel ()
2425
25- // encode := func(v interface{}) []byte {
26- // b, err := json.Marshal(v)
27- // require.NoError(t, err)
28- // return b
29- // }
30-
31- // db, ps := dbtestutil.NewDB(t,
32- // dbtestutil.WithDumpOnFailure(),
33- // //nolint:gocritic // Use UTC for consistent timestamp length in golden files.
34- // dbtestutil.WithTimezone("UTC"),
35- // )
36- // client, _, coderdAPI := coderdtest.NewWithAPI(t, &coderdtest.Options{
37- // IncludeProvisionerDaemon: true,
38- // Database: db,
39- // Pubsub: ps,
40- // })
41- // owner := coderdtest.CreateFirstUser(t, client)
42- // _, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
43-
4426db ,ps := dbtestutil .NewDB (t ,dbtestutil .WithDumpOnFailure ())
4527client := coderdtest .New (t ,& coderdtest.Options {
4628IncludeProvisionerDaemon :true ,
4729Database :db ,
4830Pubsub :ps ,
4931})
5032owner := coderdtest .CreateFirstUser (t ,client )
33+ templateAdminClient ,_ := coderdtest .CreateAnotherUser (t ,client ,owner .OrganizationID ,rbac .ScopedRoleOrgTemplateAdmin (owner .OrganizationID ))
5134memberClient ,member := coderdtest .CreateAnotherUser (t ,client ,owner .OrganizationID )
5235
53- // client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
54- // user := coderdtest.CreateFirstUser(t, client)
55-
5636version := coderdtest .CreateTemplateVersion (t ,client ,owner .OrganizationID ,nil )
5737coderdtest .AwaitTemplateVersionJobCompleted (t ,client ,version .ID )
5838template := coderdtest .CreateTemplate (t ,client ,owner .OrganizationID ,version .ID )
@@ -83,33 +63,41 @@ func TestProvisionerJobs(t *testing.T) {
8363t .Run ("All" ,func (t * testing.T ) {
8464t .Parallel ()
8565ctx := testutil .Context (t ,testutil .WaitMedium )
86- jobs ,err := memberClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,nil )
66+ jobs ,err := templateAdminClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,nil )
8767require .NoError (t ,err )
8868require .Len (t ,jobs ,3 )
8969})
9070
9171t .Run ("Pending" ,func (t * testing.T ) {
9272t .Parallel ()
9373ctx := testutil .Context (t ,testutil .WaitMedium )
94- jobs ,err := memberClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,& codersdk.OrganizationProvisionerJobsOptions {
74+ jobs ,err := templateAdminClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,& codersdk.OrganizationProvisionerJobsOptions {
9575Status : []codersdk.ProvisionerJobStatus {codersdk .ProvisionerJobPending },
9676})
97- for _ ,job := range jobs {
98- t .Logf ("job: %#v" ,job )
99- }
10077require .NoError (t ,err )
10178require .Len (t ,jobs ,1 )
10279})
10380
10481t .Run ("Limit" ,func (t * testing.T ) {
10582t .Parallel ()
10683ctx := testutil .Context (t ,testutil .WaitMedium )
107- jobs ,err := memberClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,& codersdk.OrganizationProvisionerJobsOptions {
84+ jobs ,err := templateAdminClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,& codersdk.OrganizationProvisionerJobsOptions {
10885Limit :1 ,
10986})
11087require .NoError (t ,err )
11188require .Len (t ,jobs ,1 )
11289})
90+
91+ // For now, this is not allowed even though the member has created a
92+ // workspace. Once member-level permissions for jobs are supported
93+ // by RBAC, this test should be updated.
94+ t .Run ("MemberDenied" ,func (t * testing.T ) {
95+ t .Parallel ()
96+ ctx := testutil .Context (t ,testutil .WaitMedium )
97+ jobs ,err := memberClient .OrganizationProvisionerJobs (ctx ,owner .OrganizationID ,nil )
98+ require .Error (t ,err )
99+ require .Len (t ,jobs ,0 )
100+ })
113101}
114102
115103func TestProvisionerJobLogs (t * testing.T ) {