From 77175a2952c64f6eea5c035eba1cea74de463225 Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Mon, 11 Nov 2024 19:15:13 +0100 Subject: [PATCH] Refactor and relocate JSON logger tests for Go 1.21 compliance Removed JSON logger tests from smtp_test.go and relocated them to a new file smtp_121_test.go, ensuring compliance with Go 1.21. This change maintains test integrity while organizing tests by Go version compatibility. --- smtp/smtp_121_test.go | 59 +++++++++++++++++++++++++++++++++++++++++++ smtp/smtp_test.go | 27 -------------------- 2 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 smtp/smtp_121_test.go diff --git a/smtp/smtp_121_test.go b/smtp/smtp_121_test.go new file mode 100644 index 0000000..ed722e0 --- /dev/null +++ b/smtp/smtp_121_test.go @@ -0,0 +1,59 @@ +// SPDX-FileCopyrightText: Copyright 2010 The Go Authors. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2022-2023 The go-mail Authors +// +// Original net/smtp code from the Go stdlib by the Go Authors. +// Use of this source code is governed by a BSD-style +// LICENSE file that can be found in this directory. +// +// go-mail specific modifications by the go-mail Authors. +// Licensed under the MIT License. +// See [PROJECT ROOT]/LICENSES directory for more information. +// +// SPDX-License-Identifier: BSD-3-Clause AND MIT + +//go:build go1.21 +// +build go1.21 + +package smtp + +import ( + "fmt" + "os" + "strings" + "testing" + + "github.com/wneessen/go-mail/log" +) + +func TestClient_SetDebugLog_JSON(t *testing.T) { + t.Run("set debug loggging to on should not override logger", func(t *testing.T) { + client := &Client{logger: log.NewJSON(os.Stderr, log.LevelDebug)} + client.SetDebugLog(true) + if !client.debug { + t.Fatalf("expected debug log to be true") + } + if client.logger == nil { + t.Fatalf("expected logger to be defined") + } + if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { + t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) + } + }) +} + +func TestClient_SetLogger_JSON(t *testing.T) { + t.Run("set logger to JSONlog logger", func(t *testing.T) { + client := &Client{} + client.SetLogger(log.NewJSON(os.Stderr, log.LevelDebug)) + if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { + t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) + } + }) + t.Run("nil logger should just return and not set/override", func(t *testing.T) { + client := &Client{logger: log.NewJSON(os.Stderr, log.LevelDebug)} + client.SetLogger(nil) + if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { + t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) + } + }) +} diff --git a/smtp/smtp_test.go b/smtp/smtp_test.go index e10748b..4d6316a 100644 --- a/smtp/smtp_test.go +++ b/smtp/smtp_test.go @@ -3140,19 +3140,6 @@ func TestClient_SetDebugLog(t *testing.T) { t.Errorf("expected logger to be of type *log.Stdlog, got: %T", client.logger) } }) - t.Run("set debug loggging to on should not override logger", func(t *testing.T) { - client := &Client{logger: log.NewJSON(os.Stderr, log.LevelDebug)} - client.SetDebugLog(true) - if !client.debug { - t.Fatalf("expected debug log to be true") - } - if client.logger == nil { - t.Fatalf("expected logger to be defined") - } - if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { - t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) - } - }) t.Run("set debug logggin to off with no logger defined", func(t *testing.T) { client := &Client{} client.SetDebugLog(false) @@ -3183,20 +3170,6 @@ func TestClient_SetLogger(t *testing.T) { t.Errorf("expected logger to be of type *log.Stdlog, got: %T", client.logger) } }) - t.Run("set logger to JSONlog logger", func(t *testing.T) { - client := &Client{} - client.SetLogger(log.NewJSON(os.Stderr, log.LevelDebug)) - if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { - t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) - } - }) - t.Run("nil logger should just return and not set/override", func(t *testing.T) { - client := &Client{logger: log.NewJSON(os.Stderr, log.LevelDebug)} - client.SetLogger(nil) - if !strings.EqualFold(fmt.Sprintf("%T", client.logger), "*log.JSONlog") { - t.Errorf("expected logger to be of type *log.JSONlog, got: %T", client.logger) - } - }) } func TestClient_SetLogAuthData(t *testing.T) {