| 113 | var secretsHit = false |
| 114 | |
| 115 | func startWorkflowServer(host string, port uint64) { |
| 116 | e := echo.New() |
| 117 | e.HideBanner = true |
| 118 | logger := lecho.From(log.Logger) |
| 119 | e.Logger = logger |
| 120 | e.Use(lecho.Middleware(lecho.Config{Logger: logger})) |
| 121 | |
| 122 | keyAuth := middleware.KeyAuth(func(s string, c echo.Context) (bool, error) { |
| 123 | return s == workflowKey, nil |
| 124 | }) |
| 125 | |
| 126 | eg := e.Group("", keyAuth) |
| 127 | |
| 128 | eg.POST("/secrets", func(c echo.Context) error { |
| 129 | secretsHit = true |
| 130 | params, err := c.FormParams() |
| 131 | if err != nil { |
| 132 | log.Fatal().Err(err).Send() |
| 133 | } |
| 134 | for key, val := range params { |
| 135 | switch key { |
| 136 | case "SECRET_KEY": |
| 137 | if val[0] != builderKey { |
| 138 | log.Fatal().Msg("bad key") |
| 139 | } |
| 140 | case "SECRET_URL": |
| 141 | if val[0] != config.Current.File.ServerUrl { |
| 142 | log.Fatal().Msg("bad url") |
| 143 | } |
| 144 | default: |
| 145 | log.Fatal().Msg("unknown secret") |
| 146 | } |
| 147 | } |
| 148 | return c.NoContent(200) |
| 149 | }) |
| 150 | |
| 151 | eg.POST("/trigger", func(c echo.Context) error { |
| 152 | triggerHit = true |
| 153 | return c.NoContent(200) |
| 154 | }) |
| 155 | |
| 156 | log.Fatal().Err(e.Start(fmt.Sprintf("%s:%d", host, port))).Send() |
| 157 | } |
| 158 | |
| 159 | func TestIntegration(t *testing.T) { |
| 160 | uploadUnsigned(t) |