Skip to content

Commit

Permalink
[Update] extensions, added getters and setters
Browse files Browse the repository at this point in the history
  • Loading branch information
JanGalek committed Dec 21, 2024
1 parent 9e72915 commit ddf5ebb
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 18 deletions.
10 changes: 0 additions & 10 deletions diago.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
package diago

import "github.com/gin-gonic/gin"

type Extension interface {
GetPanelHtml(c *gin.Context) string
GetHtml(c *gin.Context) string
GetJSHtml(c *gin.Context) string
BeforeNext(c *gin.Context)
AfterNext(c *gin.Context)
}

type Diago struct {
Extensions []Extension

Expand Down
14 changes: 14 additions & 0 deletions extension.go
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
package diago

import "github.com/gin-gonic/gin"

type Extension interface {
GetPanelHtml(c *gin.Context) string
GetHtml(c *gin.Context) string
GetJSHtml(c *gin.Context) string
BeforeNext(c *gin.Context)
AfterNext(c *gin.Context)
SetTemplateProvider(provider TemplateProvider)
GetTemplateProvider() TemplateProvider
SetPanelGenerator(generator PanelGenerator)
GetPanelGenerator() PanelGenerator
}
14 changes: 13 additions & 1 deletion extensions/diagoLatencyExtension.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type DiagoLatencyExtension struct {

type DefaultLatencyTemplateProvider struct{}

func (p DefaultLatencyTemplateProvider) GetTemplate() string {
func (p *DefaultLatencyTemplateProvider) GetTemplate() string {
return diago.GetDiagoLatencyPanelTemplate()
}

Expand All @@ -43,6 +43,18 @@ func (e *DiagoLatencyExtension) SetTemplateProvider(provider diago.TemplateProvi
e.TemplateProvider = provider
}

func (e *DiagoLatencyExtension) GetTemplateProvider() diago.TemplateProvider {
return e.TemplateProvider
}

func (e *DiagoLatencyExtension) SetPanelGenerator(generator diago.PanelGenerator) {
e.PanelGenerator = generator
}

func (e *DiagoLatencyExtension) GetPanelGenerator() diago.PanelGenerator {
return e.PanelGenerator
}

func (e *DiagoLatencyExtension) GetLatency() time.Duration {
return e.latency
}
Expand Down
14 changes: 12 additions & 2 deletions tests/diagoLatencyExtension_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,24 @@ func TestGenerateDiagoPanelHTML_TemplateExecuteError(t *testing.T) {
assert.Empty(t, result, "Expected empty result when execution fails")
}

func TestDiagoLatencyExtension_SetTemplateProvider(t *testing.T) {
func TestDiagoLatencyExtension_TemplateProvider(t *testing.T) {
latencyExtension := extensions.NewDiagoLatencyExtension()

mockProvider := &mockTemplateProviderWithParseError{}

latencyExtension.SetTemplateProvider(mockProvider)

assert.Equal(t, mockProvider, latencyExtension.TemplateProvider, "TemplateProvider should be set correctly")
assert.Equal(t, mockProvider, latencyExtension.GetTemplateProvider(), "TemplateProvider should be set correctly")
}

func TestDiagoLatencyExtension_PanelGenerator(t *testing.T) {
latencyExtension := extensions.NewDiagoLatencyExtension()

mockProvider := &MockPanelGenerator{}

latencyExtension.SetPanelGenerator(mockProvider)

assert.Equal(t, mockProvider, latencyExtension.GetPanelGenerator(), "PanelGenerator should be set correctly")
}

type logWriter struct {
Expand Down
14 changes: 14 additions & 0 deletions tests/diagoMiddleware_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package tests
import (
"github.com/gin-gonic/gin"
"github.com/gouef/diago"
"github.com/gouef/diago/extensions"
"github.com/gouef/router"
"github.com/stretchr/testify/assert"
"net/http"
Expand All @@ -28,6 +29,19 @@ func (e *MyExtension) BeforeNext(c *gin.Context) {}

func (e *MyExtension) AfterNext(c *gin.Context) {}

func (e *MyExtension) SetTemplateProvider(provider diago.TemplateProvider) {

}
func (e *MyExtension) GetTemplateProvider() diago.TemplateProvider {
return extensions.NewDefaultTemplateProvider()
}
func (e *MyExtension) SetPanelGenerator(generator diago.PanelGenerator) {

}
func (e *MyExtension) GetPanelGenerator() diago.PanelGenerator {
return diago.NewDefaultPanelGenerator()
}

func TestDiagoMiddleware(t *testing.T) {
r := gin.Default()
gin.SetMode(gin.TestMode)
Expand Down
26 changes: 21 additions & 5 deletions tests/diago_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,19 @@ package tests
import (
"github.com/gin-gonic/gin"
"github.com/gouef/diago"
"github.com/gouef/diago/extensions"
"github.com/stretchr/testify/assert"
"testing"
)

type MockDiagoExtension struct {
PanelHtml string
Html string
JSHtml string
BeforeCalled bool
AfterCalled bool
PanelHtml string
Html string
JSHtml string
BeforeCalled bool
AfterCalled bool
PanelGenerator diago.PanelGenerator
TemplateProvider diago.TemplateProvider
}

func (m *MockDiagoExtension) GetPanelHtml(c *gin.Context) string {
Expand All @@ -35,6 +38,19 @@ func (m *MockDiagoExtension) AfterNext(c *gin.Context) {
m.AfterCalled = true
}

func (e *MockDiagoExtension) SetTemplateProvider(provider diago.TemplateProvider) {

}
func (e *MockDiagoExtension) GetTemplateProvider() diago.TemplateProvider {
return extensions.NewDefaultTemplateProvider()
}
func (e *MockDiagoExtension) SetPanelGenerator(generator diago.PanelGenerator) {

}
func (e *MockDiagoExtension) GetPanelGenerator() diago.PanelGenerator {
return diago.NewDefaultPanelGenerator()
}

func TestDiago(t *testing.T) {
t.Run("Test AddExtension", func(t *testing.T) {
newDiago := diago.NewDiago()
Expand Down

0 comments on commit ddf5ebb

Please sign in to comment.