github.com/lucasscarioca/music-stash@v0.0.0-20230829021135-a8b8893b12a5/internal/routes/routes_test.go (about)

     1  package routes
     2  
     3  import (
     4  	"net/http"
     5  	"net/http/httptest"
     6  	"os"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/labstack/echo/v4"
    11  	"github.com/lucasscarioca/music-stash/internal/routes/middlewares"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func init() {
    16  	if err := os.Chdir("../.."); err != nil {
    17  		panic(err)
    18  	}
    19  }
    20  
    21  func setupServerTest() *echo.Echo {
    22  	e := echo.New()
    23  	middlewares.Mount(e)
    24  	Mount(e)
    25  	return e
    26  }
    27  
    28  func TestIfServerIsRunning(t *testing.T) {
    29  	// Setup
    30  	e := setupServerTest()
    31  	req := httptest.NewRequest(http.MethodGet, "/ping", strings.NewReader(""))
    32  	rec := httptest.NewRecorder()
    33  	c := e.NewContext(req, rec)
    34  	// Assertions
    35  	if assert.NoError(t, pingHandler(c)) {
    36  		assert.Equal(t, http.StatusOK, rec.Code)
    37  		assert.Equal(t, "pong", rec.Body.String())
    38  	}
    39  }