@@ -13,6 +13,7 @@ import (
13
13
"github.com/coder/coder/v2/coderd/database"
14
14
"github.com/coder/coder/v2/coderd/database/dbgen"
15
15
"github.com/coder/coder/v2/coderd/database/dbtestutil"
16
+ "github.com/coder/coder/v2/coderd/rbac"
16
17
"github.com/coder/coder/v2/codersdk"
17
18
"github.com/coder/coder/v2/provisioner/echo"
18
19
"github.com/coder/coder/v2/provisionersdk/proto"
@@ -22,37 +23,16 @@ import (
22
23
func TestProvisionerJobs (t * testing.T ) {
23
24
t .Parallel ()
24
25
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
-
44
26
db , ps := dbtestutil .NewDB (t , dbtestutil .WithDumpOnFailure ())
45
27
client := coderdtest .New (t , & coderdtest.Options {
46
28
IncludeProvisionerDaemon : true ,
47
29
Database : db ,
48
30
Pubsub : ps ,
49
31
})
50
32
owner := coderdtest .CreateFirstUser (t , client )
33
+ templateAdminClient , _ := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID , rbac .ScopedRoleOrgTemplateAdmin (owner .OrganizationID ))
51
34
memberClient , member := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID )
52
35
53
- // client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
54
- // user := coderdtest.CreateFirstUser(t, client)
55
-
56
36
version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
57
37
coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
58
38
template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID )
@@ -83,33 +63,41 @@ func TestProvisionerJobs(t *testing.T) {
83
63
t .Run ("All" , func (t * testing.T ) {
84
64
t .Parallel ()
85
65
ctx := testutil .Context (t , testutil .WaitMedium )
86
- jobs , err := memberClient .OrganizationProvisionerJobs (ctx , owner .OrganizationID , nil )
66
+ jobs , err := templateAdminClient .OrganizationProvisionerJobs (ctx , owner .OrganizationID , nil )
87
67
require .NoError (t , err )
88
68
require .Len (t , jobs , 3 )
89
69
})
90
70
91
71
t .Run ("Pending" , func (t * testing.T ) {
92
72
t .Parallel ()
93
73
ctx := 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 {
95
75
Status : []codersdk.ProvisionerJobStatus {codersdk .ProvisionerJobPending },
96
76
})
97
- for _ , job := range jobs {
98
- t .Logf ("job: %#v" , job )
99
- }
100
77
require .NoError (t , err )
101
78
require .Len (t , jobs , 1 )
102
79
})
103
80
104
81
t .Run ("Limit" , func (t * testing.T ) {
105
82
t .Parallel ()
106
83
ctx := 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 {
108
85
Limit : 1 ,
109
86
})
110
87
require .NoError (t , err )
111
88
require .Len (t , jobs , 1 )
112
89
})
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
+ })
113
101
}
114
102
115
103
func TestProvisionerJobLogs (t * testing.T ) {
0 commit comments