mirror of
https://github.com/datarhei/core.git
synced 2025-10-05 16:07:07 +08:00
62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/datarhei/core/v16/http/api"
|
|
"github.com/datarhei/core/v16/http/mock"
|
|
"github.com/datarhei/core/v16/restream"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func getDummyWidgetHandler(rs restream.Restreamer) (*WidgetHandler, error) {
|
|
handler := NewWidget(WidgetConfig{
|
|
Restream: rs,
|
|
Registry: nil,
|
|
})
|
|
|
|
return handler, nil
|
|
}
|
|
|
|
func getDummyWidgetRouter(rs restream.Restreamer) (*echo.Echo, error) {
|
|
router := mock.DummyEcho()
|
|
|
|
widget, err := getDummyWidgetHandler(rs)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
router.GET("/:id", widget.Get)
|
|
|
|
return router, nil
|
|
}
|
|
|
|
func TestWidget(t *testing.T) {
|
|
rs, err := mock.DummyRestreamer("../../mock")
|
|
require.NoError(t, err)
|
|
|
|
router, err := getDummyWidgetRouter(rs)
|
|
require.NoError(t, err)
|
|
|
|
data, err := io.ReadAll(mock.Read(t, "./fixtures/addProcess.json"))
|
|
require.NoError(t, err)
|
|
|
|
process := api.ProcessConfig{}
|
|
err = json.Unmarshal(data, &process)
|
|
require.NoError(t, err)
|
|
|
|
config, _ := process.Marshal()
|
|
|
|
err = rs.AddProcess(config)
|
|
require.NoError(t, err)
|
|
|
|
response := mock.Request(t, http.StatusOK, router, "GET", "/"+process.ID, nil)
|
|
|
|
mock.Validate(t, &api.WidgetProcess{}, response.Data)
|
|
}
|