pluginproxy_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package pluginproxy
  2. import (
  3. "testing"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. "github.com/grafana/grafana/pkg/plugins"
  7. "github.com/grafana/grafana/pkg/setting"
  8. "github.com/grafana/grafana/pkg/util"
  9. . "github.com/smartystreets/goconvey/convey"
  10. )
  11. func TestPluginProxy(t *testing.T) {
  12. Convey("When getting proxy headers", t, func() {
  13. route := &plugins.AppPluginRoute{
  14. Headers: []plugins.AppPluginRouteHeader{
  15. {Name: "x-header", Content: "my secret {{.SecureJsonData.key}}"},
  16. },
  17. }
  18. setting.SecretKey = "password"
  19. bus.AddHandler("test", func(query *m.GetPluginSettingByIdQuery) error {
  20. key, err := util.Encrypt([]byte("123"), "password")
  21. if err != nil {
  22. return err
  23. }
  24. query.Result = &m.PluginSetting{
  25. SecureJsonData: map[string][]byte{
  26. "key": key,
  27. },
  28. }
  29. return nil
  30. })
  31. header, err := getHeaders(route, 1, "my-app")
  32. So(err, ShouldBeNil)
  33. Convey("Should render header template", func() {
  34. So(header.Get("x-header"), ShouldEqual, "my secret 123")
  35. })
  36. })
  37. }