package logger_test

import (
	"bytes"
	"io"
	"os"
	"path/filepath"
	"testing"

	"github.com/aws/eks-anywhere/pkg/logger"
)

func TestInit(t *testing.T) {
	tdir := t.TempDir()
	defer os.RemoveAll(tdir)

	logFile := filepath.Join(tdir, "test.log")

	err := logger.Init(logger.Options{
		OutputFilePath: logFile,
	})
	if err != nil {
		t.Fatal(err)
	}

	message := "log me"
	logger.Info(message)

	// Opening the file validates it exists.
	f, err := os.Open(logFile)
	if err != nil {
		t.Fatalf("Error opening log file: %v", err)
	}
	defer f.Close()

	// Ensure we're writing data to the logger from package functions.
	buf, err := io.ReadAll(f)
	if err != nil {
		t.Fatalf("Reading log file: %v", err)
	}

	if !bytes.Contains(buf, []byte(message)) {
		t.Fatalf("Log file does not contain expected message: %s", message)
	}
}