@@ -706,3 +706,155 @@ func TestKubernetesGetAppConfig(t *testing.T) {
706706 assert .Equal (t , http .StatusInternalServerError , apiErr .StatusCode )
707707 assert .Equal (t , "Internal Server Error" , apiErr .Message )
708708}
709+
710+ func TestLinuxGetAppConfigValues (t * testing.T ) {
711+ // Define expected values once
712+ expectedValues := map [string ]string {
713+ "test-key1" : "test-value1" ,
714+ "test-key2" : "test-value2" ,
715+ "test-key3" : "test-value3" ,
716+ }
717+
718+ // Create a test server
719+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
720+ assert .Equal (t , "GET" , r .Method )
721+ assert .Equal (t , "/api/linux/install/app/config/values" , r .URL .Path )
722+
723+ assert .Equal (t , "application/json" , r .Header .Get ("Content-Type" ))
724+ assert .Equal (t , "Bearer test-token" , r .Header .Get ("Authorization" ))
725+
726+ // Return successful response
727+ w .WriteHeader (http .StatusOK )
728+ response := types.AppConfigValuesResponse {Values : expectedValues }
729+ json .NewEncoder (w ).Encode (response )
730+ }))
731+ defer server .Close ()
732+
733+ // Test successful get
734+ c := New (server .URL , WithToken ("test-token" ))
735+ values , err := c .GetLinuxAppConfigValues ()
736+ assert .NoError (t , err )
737+ assert .Equal (t , expectedValues , values )
738+
739+ // Test authentication (without token)
740+ authServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
741+ assert .Equal (t , "GET" , r .Method )
742+ assert .Equal (t , "/api/linux/install/app/config/values" , r .URL .Path )
743+ assert .Equal (t , "application/json" , r .Header .Get ("Content-Type" ))
744+ assert .Empty (t , r .Header .Get ("Authorization" ))
745+
746+ // Return unauthorized response
747+ w .WriteHeader (http .StatusUnauthorized )
748+ json .NewEncoder (w ).Encode (types.APIError {
749+ StatusCode : http .StatusUnauthorized ,
750+ Message : "Unauthorized" ,
751+ })
752+ }))
753+ defer authServer .Close ()
754+
755+ c = New (authServer .URL )
756+ values , err = c .GetLinuxAppConfigValues ()
757+ assert .Error (t , err )
758+ assert .Nil (t , values )
759+
760+ apiErr , ok := err .(* types.APIError )
761+ require .True (t , ok , "Expected err to be of type *types.APIError" )
762+ assert .Equal (t , http .StatusUnauthorized , apiErr .StatusCode )
763+ assert .Equal (t , "Unauthorized" , apiErr .Message )
764+
765+ // Test error response
766+ errorServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
767+ w .WriteHeader (http .StatusInternalServerError )
768+ json .NewEncoder (w ).Encode (types.APIError {
769+ StatusCode : http .StatusInternalServerError ,
770+ Message : "Internal Server Error" ,
771+ })
772+ }))
773+ defer errorServer .Close ()
774+
775+ c = New (errorServer .URL , WithToken ("test-token" ))
776+ values , err = c .GetLinuxAppConfigValues ()
777+ assert .Error (t , err )
778+ assert .Nil (t , values )
779+
780+ apiErr , ok = err .(* types.APIError )
781+ require .True (t , ok , "Expected err to be of type *types.APIError" )
782+ assert .Equal (t , http .StatusInternalServerError , apiErr .StatusCode )
783+ assert .Equal (t , "Internal Server Error" , apiErr .Message )
784+ }
785+
786+ func TestKubernetesGetAppConfigValues (t * testing.T ) {
787+ // Define expected values once
788+ expectedValues := map [string ]string {
789+ "test-key1" : "test-value1" ,
790+ "test-key2" : "test-value2" ,
791+ "test-key3" : "test-value3" ,
792+ }
793+
794+ // Create a test server
795+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
796+ assert .Equal (t , "GET" , r .Method )
797+ assert .Equal (t , "/api/kubernetes/install/app/config/values" , r .URL .Path )
798+
799+ assert .Equal (t , "application/json" , r .Header .Get ("Content-Type" ))
800+ assert .Equal (t , "Bearer test-token" , r .Header .Get ("Authorization" ))
801+
802+ // Return successful response
803+ w .WriteHeader (http .StatusOK )
804+ response := types.AppConfigValuesResponse {Values : expectedValues }
805+ json .NewEncoder (w ).Encode (response )
806+ }))
807+ defer server .Close ()
808+
809+ // Test successful get
810+ c := New (server .URL , WithToken ("test-token" ))
811+ values , err := c .GetKubernetesAppConfigValues ()
812+ assert .NoError (t , err )
813+ assert .Equal (t , expectedValues , values )
814+
815+ // Test authentication (without token)
816+ authServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
817+ assert .Equal (t , "GET" , r .Method )
818+ assert .Equal (t , "/api/kubernetes/install/app/config/values" , r .URL .Path )
819+ assert .Equal (t , "application/json" , r .Header .Get ("Content-Type" ))
820+ assert .Empty (t , r .Header .Get ("Authorization" ))
821+
822+ // Return unauthorized response
823+ w .WriteHeader (http .StatusUnauthorized )
824+ json .NewEncoder (w ).Encode (types.APIError {
825+ StatusCode : http .StatusUnauthorized ,
826+ Message : "Unauthorized" ,
827+ })
828+ }))
829+ defer authServer .Close ()
830+
831+ c = New (authServer .URL )
832+ values , err = c .GetKubernetesAppConfigValues ()
833+ assert .Error (t , err )
834+ assert .Nil (t , values )
835+
836+ apiErr , ok := err .(* types.APIError )
837+ require .True (t , ok , "Expected err to be of type *types.APIError" )
838+ assert .Equal (t , http .StatusUnauthorized , apiErr .StatusCode )
839+ assert .Equal (t , "Unauthorized" , apiErr .Message )
840+
841+ // Test error response
842+ errorServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
843+ w .WriteHeader (http .StatusInternalServerError )
844+ json .NewEncoder (w ).Encode (types.APIError {
845+ StatusCode : http .StatusInternalServerError ,
846+ Message : "Internal Server Error" ,
847+ })
848+ }))
849+ defer errorServer .Close ()
850+
851+ c = New (errorServer .URL , WithToken ("test-token" ))
852+ values , err = c .GetKubernetesAppConfigValues ()
853+ assert .Error (t , err )
854+ assert .Nil (t , values )
855+
856+ apiErr , ok = err .(* types.APIError )
857+ require .True (t , ok , "Expected err to be of type *types.APIError" )
858+ assert .Equal (t , http .StatusInternalServerError , apiErr .StatusCode )
859+ assert .Equal (t , "Internal Server Error" , apiErr .Message )
860+ }
0 commit comments