Skip to content
Snippets Groups Projects
middleware_test.go 2.06 KiB
Newer Older
  • Learn to ignore specific revisions
  • OZGCloud's avatar
    OZGCloud committed
    /*
     * Copyright (C) 2023-2024
     * Das Land Schleswig-Holstein vertreten durch den
     * Ministerpräsidenten des Landes Schleswig-Holstein
     * Staatskanzlei
     * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
     *
     * Lizenziert unter der EUPL, Version 1.2 oder - sobald
     * diese von der Europäischen Kommission genehmigt wurden -
     * Folgeversionen der EUPL ("Lizenz");
     * Sie dürfen dieses Werk ausschließlich gemäß
     * dieser Lizenz nutzen.
     * Eine Kopie der Lizenz finden Sie hier:
     *
     * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
     *
     * Sofern nicht durch anwendbare Rechtsvorschriften
     * gefordert oder in schriftlicher Form vereinbart, wird
     * die unter der Lizenz verbreitete Software "so wie sie
     * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
     * ausdrücklich oder stillschweigend - verbreitet.
     * Die sprachspezifischen Genehmigungen und Beschränkungen
     * unter der Lizenz sind dem Lizenztext zu entnehmen.
     */
    
    package server
    
    import (
    	"bytes"
    	"github.com/stretchr/testify/assert"
    
    OZGCloud's avatar
    OZGCloud committed
    	"info-manager-proxy/internal/mock"
    
    OZGCloud's avatar
    OZGCloud committed
    	"net/http"
    	"testing"
    
    OZGCloud's avatar
    OZGCloud committed
    	"log"
        "github.com/sirupsen/logrus"
        "go.elastic.co/ecslogrus"
    
    OZGCloud's avatar
    OZGCloud committed
    )
    
    func TestRequestLoggingMiddleware(t *testing.T) {
    
    OZGCloud's avatar
    OZGCloud committed
        logger := logrus.New()
        logger.SetFormatter(&ecslogrus.Formatter{})
        log.SetOutput(logger.Writer())
    
    
    OZGCloud's avatar
    OZGCloud committed
    	t.Run("should log request", func(t *testing.T) {
    
    OZGCloud's avatar
    OZGCloud committed
    	    logger.SetLevel(logrus.InfoLevel)
    
    OZGCloud's avatar
    OZGCloud committed
    		mock.SetUpGrpcServer()
    		SetUpHttpGateway()
    
    		var buf bytes.Buffer
    
    OZGCloud's avatar
    OZGCloud committed
    		log.SetOutput(&buf)
    
    OZGCloud's avatar
    OZGCloud committed
    
    		http.Get("http://localhost:8082/api/v1/information/testId")
    
    		logOutput := buf.String()
    
    OZGCloud's avatar
    OZGCloud committed
    		assert.Contains(t, "received GET request for /api/v1/information/testId with body", logOutput)
    		assert.Contains(t,"successfully handled GET request for /api/v1/information/testId with body",  logOutput)
    
    OZGCloud's avatar
    OZGCloud committed
    	})
    
    	t.Run("should not log request", func(t *testing.T) {
    
    OZGCloud's avatar
    OZGCloud committed
    	    logger.SetLevel(logrus.InfoLevel)
    
    OZGCloud's avatar
    OZGCloud committed
    		mock.SetUpGrpcServer()
    		SetUpHttpGateway()
    
    OZGCloud's avatar
    OZGCloud committed
    		var buf bytes.Buffer
    
    OZGCloud's avatar
    OZGCloud committed
    		log.SetOutput(&buf)
    
    OZGCloud's avatar
    OZGCloud committed
    		http.Get("http://localhost:8082/")
    
    OZGCloud's avatar
    OZGCloud committed
    		logOutput := buf.String()
    		assert.Empty(t, logOutput)
    	})