Skip to content
Snippets Groups Projects
runnable-http_test.go 821 B
package jobqueue

import (
	"context"
	"github.com/stretchr/testify/assert"
	"net/http"
	"net/http/httptest"
	"testing"
)

func TestHTTPRunnable_Run(t *testing.T) {

	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		_, _ = w.Write([]byte("Hello, world!"))
	}))
	defer server.Close()

	httpRunnable := &HTTPRunnable{
		URL:    server.URL,
		Method: "GET",
		Header: map[string]string{
			"Content-Type": "application/json",
		},
		Body: "",
	}

	ctx := context.Background()
	result, err := httpRunnable.Run(ctx)

	// Assertions
	assert.NoError(t, err)
	assert.Equal(t, ResultStatusSuccess, result.Status)
	assert.IsType(t, HTTPResult{}, result.Data)

	httpResult := result.Data
	assert.Equal(t, 200, httpResult.StatusCode)
	assert.Equal(t, "Hello, world!", httpResult.Body)
}