mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
| package pluginproxy
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/grafana/grafana/pkg/bus"
 | |
| 	m "github.com/grafana/grafana/pkg/models"
 | |
| 	"github.com/grafana/grafana/pkg/plugins"
 | |
| 	"github.com/grafana/grafana/pkg/setting"
 | |
| 	"github.com/grafana/grafana/pkg/util"
 | |
| 	. "github.com/smartystreets/goconvey/convey"
 | |
| )
 | |
| 
 | |
| func TestPluginProxy(t *testing.T) {
 | |
| 
 | |
| 	Convey("When getting proxy headers", t, func() {
 | |
| 		route := &plugins.AppPluginRoute{
 | |
| 			Headers: []plugins.AppPluginRouteHeader{
 | |
| 				{Name: "x-header", Content: "my secret {{.SecureJsonData.key}}"},
 | |
| 			},
 | |
| 		}
 | |
| 
 | |
| 		setting.SecretKey = "password"
 | |
| 
 | |
| 		bus.AddHandler("test", func(query *m.GetPluginSettingByIdQuery) error {
 | |
| 			key, err := util.Encrypt([]byte("123"), "password")
 | |
| 			if err != nil {
 | |
| 				return err
 | |
| 			}
 | |
| 
 | |
| 			query.Result = &m.PluginSetting{
 | |
| 				SecureJsonData: map[string][]byte{
 | |
| 					"key": key,
 | |
| 				},
 | |
| 			}
 | |
| 			return nil
 | |
| 		})
 | |
| 
 | |
| 		header, err := getHeaders(route, 1, "my-app")
 | |
| 		So(err, ShouldBeNil)
 | |
| 
 | |
| 		Convey("Should render header template", func() {
 | |
| 			So(header.Get("x-header"), ShouldEqual, "my secret 123")
 | |
| 		})
 | |
| 	})
 | |
| 
 | |
| }
 |