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 }