package zapcloudwatch

import (
	"log"
	"testing"

	//"github.com/stretchr/testify/assert"

	"github.com/aws/aws-sdk-go/aws/session"

	//"github.com/stretchr/testify/require"
	"go.uber.org/zap"
	"go.uber.org/zap/zaptest"
)

func TestHook(t *testing.T) {
	testLogger := zaptest.NewLogger(t).Sugar()
	sess, err := session.NewSessionWithOptions(session.Options{
		Profile:           "gdb-infra-dev",
		SharedConfigState: session.SharedConfigEnable,
	})
	if err != nil {
		testLogger.Fatal("Unable to create AWS client")
	}

	hook, err := NewCloudwatchHook("/testlogroup", "testlogstream", sess).Hook()
	if err != nil {
		testLogger.Fatal("Unable to create hook")
	}
	// new zap logger
	zapConfig := zap.NewProductionConfig()
	logger, err := zapConfig.Build(zap.Hooks(hook))
	if err != nil {
		log.Fatalf("failed to init logger: %s", err)
	}
	testedLogger := logger.Sugar()
	testedLogger.Info("Testing CW logger")
	testedLogger.Debug("Debug not allowed")
	// Testing with debug level
	/* zapConfig.Level.SetLevel(zap.DebugLevel)
	logger, err = zapConfig.Build(zap.Hooks(hook))
	if err != nil {
		log.Fatalf("failed to init logger: %s", err)
	}
	testedLogger = logger.Sugar()
	testedLogger.Info("Testing CW logger 2")
	testedLogger.Debug("Debug should be allowed") */
}
