package httputil_test

import (
	"log"
	"net/http"
	"testing"
	"time"

	"git.phc.dm.unipi.it/aziis98/posti-dm/server/httputil"
)

func TestSSE(t *testing.T) {
	sse := &httputil.SSEHandler{
		Connected: func(client chan string) {
			log.Printf(`New client connected callback`)
			client <- "Messaggio 1 per questo client"
			time.Sleep(1 * time.Second)
			client <- "Messaggio 2 per questo client"
		},
	}

	go func() {
		for {
			log.Printf(`Broadcasting message`)
			sse.Broadcast("Messaggio per tutti")
			time.Sleep(1 * time.Second)
		}
	}()

	http.Handle("/sse", sse)
	http.ListenAndServe(":8000", nil)
}