@@ -976,6 +976,54 @@ func TestUpdateTemplateACL(t *testing.T) {
976
976
})
977
977
}
978
978
979
+ func TestReadFileWithTemplateUpdate (t * testing.T ) {
980
+ t .Parallel ()
981
+ t .Run ("HasTemplateUpdate" , func (t * testing.T ) {
982
+ t .Parallel ()
983
+ ctx , cancel := testutil .Context (t )
984
+ defer cancel ()
985
+
986
+ // Upload a file
987
+ client := coderdenttest .New (t , nil )
988
+ first := coderdtest .CreateFirstUser (t , client )
989
+ _ = coderdenttest .AddLicense (t , client , coderdenttest.LicenseOptions {
990
+ Features : license.Features {
991
+ codersdk .FeatureTemplateRBAC : 1 ,
992
+ },
993
+ })
994
+
995
+ resp , err := client .Upload (ctx , codersdk .ContentTypeTar , bytes .NewReader (make ([]byte , 1024 )))
996
+ require .NoError (t , err )
997
+
998
+ // Make a new user
999
+ member , memberData := coderdtest .CreateAnotherUser (t , client , first .OrganizationID )
1000
+
1001
+ // Try to download file, this should fail
1002
+ _ , _ , err = member .Download (ctx , resp .ID )
1003
+ require .Error (t , err , "no template yet" )
1004
+
1005
+ // Make a new template version with the file
1006
+ version := coderdtest .CreateTemplateVersion (t , client , first .OrganizationID , nil , func (request * codersdk.CreateTemplateVersionRequest ) {
1007
+ request .FileID = resp .ID
1008
+ })
1009
+ template := coderdtest .CreateTemplate (t , client , first .OrganizationID , version .ID )
1010
+
1011
+ // Not in acl yet
1012
+ _ , _ , err = member .Download (ctx , resp .ID )
1013
+ require .Error (t , err , "not in acl yet" )
1014
+
1015
+ err = client .UpdateTemplateACL (ctx , template .ID , codersdk.UpdateTemplateACL {
1016
+ UserPerms : map [string ]codersdk.TemplateRole {
1017
+ memberData .ID .String (): codersdk .TemplateRoleAdmin ,
1018
+ },
1019
+ })
1020
+ require .NoError (t , err )
1021
+
1022
+ _ , _ , err = member .Download (ctx , resp .ID )
1023
+ require .NoError (t , err )
1024
+ })
1025
+ }
1026
+
979
1027
// TestTemplateAccess tests the rego -> sql conversion. We need to implement
980
1028
// this test on at least 1 table type to ensure that the conversion is correct.
981
1029
// The rbac tests only assert against static SQL queries.
0 commit comments