github.com/gofiber/fiber/v2@v2.47.0/middleware/monitor/config_test.go (about)

     1  package monitor
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/gofiber/fiber/v2"
     8  	"github.com/gofiber/fiber/v2/utils"
     9  )
    10  
    11  func Test_Config_Default(t *testing.T) {
    12  	t.Parallel()
    13  
    14  	t.Run("use default", func(t *testing.T) {
    15  		t.Parallel()
    16  		cfg := configDefault()
    17  
    18  		utils.AssertEqual(t, defaultTitle, cfg.Title)
    19  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
    20  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
    21  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
    22  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
    23  		utils.AssertEqual(t, false, cfg.APIOnly)
    24  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
    25  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
    26  	})
    27  
    28  	t.Run("set title", func(t *testing.T) {
    29  		t.Parallel()
    30  		title := "title"
    31  		cfg := configDefault(Config{
    32  			Title: title,
    33  		})
    34  
    35  		utils.AssertEqual(t, title, cfg.Title)
    36  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
    37  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
    38  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
    39  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
    40  		utils.AssertEqual(t, false, cfg.APIOnly)
    41  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
    42  		utils.AssertEqual(t, newIndex(viewBag{title, defaultRefresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
    43  	})
    44  
    45  	t.Run("set refresh less than default", func(t *testing.T) {
    46  		t.Parallel()
    47  		cfg := configDefault(Config{
    48  			Refresh: 100 * time.Millisecond,
    49  		})
    50  
    51  		utils.AssertEqual(t, defaultTitle, cfg.Title)
    52  		utils.AssertEqual(t, minRefresh, cfg.Refresh)
    53  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
    54  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
    55  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
    56  		utils.AssertEqual(t, false, cfg.APIOnly)
    57  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
    58  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, minRefresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
    59  	})
    60  
    61  	t.Run("set refresh", func(t *testing.T) {
    62  		t.Parallel()
    63  		refresh := time.Second
    64  		cfg := configDefault(Config{
    65  			Refresh: refresh,
    66  		})
    67  
    68  		utils.AssertEqual(t, defaultTitle, cfg.Title)
    69  		utils.AssertEqual(t, refresh, cfg.Refresh)
    70  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
    71  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
    72  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
    73  		utils.AssertEqual(t, false, cfg.APIOnly)
    74  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
    75  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, refresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
    76  	})
    77  
    78  	t.Run("set font url", func(t *testing.T) {
    79  		t.Parallel()
    80  		fontURL := "https://example.com"
    81  		cfg := configDefault(Config{
    82  			FontURL: fontURL,
    83  		})
    84  
    85  		utils.AssertEqual(t, defaultTitle, cfg.Title)
    86  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
    87  		utils.AssertEqual(t, fontURL, cfg.FontURL)
    88  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
    89  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
    90  		utils.AssertEqual(t, false, cfg.APIOnly)
    91  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
    92  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, fontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
    93  	})
    94  
    95  	t.Run("set chart js url", func(t *testing.T) {
    96  		t.Parallel()
    97  		chartURL := "http://example.com"
    98  		cfg := configDefault(Config{
    99  			ChartJsURL: chartURL,
   100  		})
   101  
   102  		utils.AssertEqual(t, defaultTitle, cfg.Title)
   103  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
   104  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
   105  		utils.AssertEqual(t, chartURL, cfg.ChartJsURL)
   106  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
   107  		utils.AssertEqual(t, false, cfg.APIOnly)
   108  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
   109  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, defaultFontURL, chartURL, defaultCustomHead}), cfg.index)
   110  	})
   111  
   112  	t.Run("set custom head", func(t *testing.T) {
   113  		t.Parallel()
   114  		head := "head"
   115  		cfg := configDefault(Config{
   116  			CustomHead: head,
   117  		})
   118  
   119  		utils.AssertEqual(t, defaultTitle, cfg.Title)
   120  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
   121  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
   122  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
   123  		utils.AssertEqual(t, head, cfg.CustomHead)
   124  		utils.AssertEqual(t, false, cfg.APIOnly)
   125  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
   126  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, defaultFontURL, defaultChartJSURL, head}), cfg.index)
   127  	})
   128  
   129  	t.Run("set api only", func(t *testing.T) {
   130  		t.Parallel()
   131  		cfg := configDefault(Config{
   132  			APIOnly: true,
   133  		})
   134  
   135  		utils.AssertEqual(t, defaultTitle, cfg.Title)
   136  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
   137  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
   138  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
   139  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
   140  		utils.AssertEqual(t, true, cfg.APIOnly)
   141  		utils.AssertEqual(t, (func(*fiber.Ctx) bool)(nil), cfg.Next)
   142  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
   143  	})
   144  
   145  	t.Run("set next", func(t *testing.T) {
   146  		t.Parallel()
   147  		f := func(c *fiber.Ctx) bool {
   148  			return true
   149  		}
   150  		cfg := configDefault(Config{
   151  			Next: f,
   152  		})
   153  
   154  		utils.AssertEqual(t, defaultTitle, cfg.Title)
   155  		utils.AssertEqual(t, defaultRefresh, cfg.Refresh)
   156  		utils.AssertEqual(t, defaultFontURL, cfg.FontURL)
   157  		utils.AssertEqual(t, defaultChartJSURL, cfg.ChartJsURL)
   158  		utils.AssertEqual(t, defaultCustomHead, cfg.CustomHead)
   159  		utils.AssertEqual(t, false, cfg.APIOnly)
   160  		utils.AssertEqual(t, f(nil), cfg.Next(nil))
   161  		utils.AssertEqual(t, newIndex(viewBag{defaultTitle, defaultRefresh, defaultFontURL, defaultChartJSURL, defaultCustomHead}), cfg.index)
   162  	})
   163  }