@@ -134,4 +134,28 @@ func TestStatePush(t *testing.T) {
134
134
err := inv .Run ()
135
135
require .NoError (t , err )
136
136
})
137
+
138
+ t .Run ("OtherUserBuild" , func (t * testing.T ) {
139
+ t .Parallel ()
140
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
141
+ owner := coderdtest .CreateFirstUser (t , client )
142
+ templateAdmin , taUser := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID , rbac .RoleTemplateAdmin ())
143
+ version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , & echo.Responses {
144
+ Parse : echo .ParseComplete ,
145
+ ProvisionApply : echo .ApplyComplete ,
146
+ })
147
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
148
+ template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID )
149
+ workspace := coderdtest .CreateWorkspace (t , templateAdmin , owner .OrganizationID , template .ID )
150
+ coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
151
+ inv , root := clitest .New (t , "state" , "push" ,
152
+ "--build" , strconv .Itoa (int (workspace .LatestBuild .BuildNumber )),
153
+ taUser .Username + "/" + workspace .Name ,
154
+ "-" )
155
+ //nolint: gocritic // this tests owner pushing another user's state
156
+ clitest .SetupConfig (t , client , root )
157
+ inv .Stdin = strings .NewReader ("some magic state" )
158
+ err := inv .Run ()
159
+ require .NoError (t , err )
160
+ })
137
161
}
0 commit comments