@@ -909,6 +909,72 @@ func Run(t *testing.T, appHostIsPrimary bool, factory DeploymentFactory) {
909
909
require .Equal (t , http .StatusOK , resp .StatusCode )
910
910
})
911
911
912
+ t .Run ("PortSharingNoShare" , func (t * testing.T ) {
913
+ t .Parallel ()
914
+
915
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
916
+ defer cancel ()
917
+
918
+ userClient , _ := coderdtest .CreateAnotherUser (t , appDetails .SDKClient , appDetails .FirstUser .OrganizationID , rbac .RoleMember ())
919
+ userAppClient := appDetails .AppClient (t )
920
+ userAppClient .SetSessionToken (userClient .SessionToken ())
921
+
922
+ resp , err := requestWithRetries (ctx , t , userAppClient , http .MethodGet , appDetails .SubdomainAppURL (appDetails .Apps .Port ).String (), nil )
923
+ require .NoError (t , err )
924
+ defer resp .Body .Close ()
925
+ require .Equal (t , http .StatusNotFound , resp .StatusCode )
926
+ })
927
+
928
+ t .Run ("PortSharingAuthenticatedOK" , func (t * testing.T ) {
929
+ t .Parallel ()
930
+
931
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
932
+ defer cancel ()
933
+
934
+ port , err := strconv .ParseInt (appDetails .Apps .Port .AppSlugOrPort , 10 , 32 )
935
+ require .NoError (t , err )
936
+ err = appDetails .SDKClient .UpdateWorkspaceAgentPortShare (ctx , appDetails .Workspace .ID , codersdk.UpdateWorkspaceAgentPortShareRequest {
937
+ AgentName : proxyTestAgentName ,
938
+ Port : int32 (port ),
939
+ ShareLevel : codersdk .WorkspaceAgentPortShareLevelAuthenticated ,
940
+ })
941
+ require .NoError (t , err )
942
+
943
+ userClient , _ := coderdtest .CreateAnotherUser (t , appDetails .SDKClient , appDetails .FirstUser .OrganizationID , rbac .RoleMember ())
944
+ userAppClient := appDetails .AppClient (t )
945
+ userAppClient .SetSessionToken (userClient .SessionToken ())
946
+
947
+ resp , err := requestWithRetries (ctx , t , userAppClient , http .MethodGet , appDetails .SubdomainAppURL (appDetails .Apps .Port ).String (), nil )
948
+ require .NoError (t , err )
949
+ defer resp .Body .Close ()
950
+ require .Equal (t , http .StatusOK , resp .StatusCode )
951
+ })
952
+
953
+ t .Run ("PortSharingPublicOK" , func (t * testing.T ) {
954
+ t .Parallel ()
955
+
956
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
957
+ defer cancel ()
958
+
959
+ port , err := strconv .ParseInt (appDetails .Apps .Port .AppSlugOrPort , 10 , 32 )
960
+ require .NoError (t , err )
961
+ err = appDetails .SDKClient .UpdateWorkspaceAgentPortShare (ctx , appDetails .Workspace .ID , codersdk.UpdateWorkspaceAgentPortShareRequest {
962
+ AgentName : proxyTestAgentName ,
963
+ Port : int32 (port ),
964
+ ShareLevel : codersdk .WorkspaceAgentPortShareLevelPublic ,
965
+ })
966
+ require .NoError (t , err )
967
+
968
+ _ , _ = coderdtest .CreateAnotherUser (t , appDetails .SDKClient , appDetails .FirstUser .OrganizationID , rbac .RoleMember ())
969
+ userAppClient := appDetails .AppClient (t )
970
+ userAppClient .SetSessionToken ("" )
971
+
972
+ resp , err := requestWithRetries (ctx , t , userAppClient , http .MethodGet , appDetails .SubdomainAppURL (appDetails .Apps .Port ).String (), nil )
973
+ require .NoError (t , err )
974
+ defer resp .Body .Close ()
975
+ require .Equal (t , http .StatusOK , resp .StatusCode )
976
+ })
977
+
912
978
t .Run ("ProxyError" , func (t * testing.T ) {
913
979
t .Parallel ()
914
980
0 commit comments