Skip to content

Commit

Permalink
Add chart test
Browse files Browse the repository at this point in the history
  • Loading branch information
obukhov committed Aug 11, 2021
1 parent 8623fe6 commit f069aa5
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 4 deletions.
4 changes: 0 additions & 4 deletions src/renderer/webchart.go → src/renderer/chart.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,6 @@ func (o ChartRenderer) convertChildren(node *trie.Node, level int, prefix string
result = append(result, item)
}

//if node.OverflowChildrenCount > 0 {
// t.AppendRow(table.Row{o.displayKey(level, fmt.Sprintf("( %d more keys )", node.OverflowChildrenCount), prefix)})
//}

return result
}

Expand Down
61 changes: 61 additions & 0 deletions src/renderer/chart_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package renderer

import (
"github.com/obukhov/redis-inventory/src/trie"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/suite"
"testing"
)

type ChartRendererTestSuite struct {
suite.Suite
trie *trie.Trie
}

func (suite *ChartRendererTestSuite) TestRender() {
srvMock := &MockServer{}
srvMock.On("Serve", 123, mock.Anything).Once()

renderer := NewChartRenderer(
srvMock,
ChartRendererParams{
Depth: 2,
Port: 123,
},
)

err := renderer.Render(suite.trie.Root())

suite.Assert().Nil(err)
srvMock.AssertExpectations(suite.T())
}

func (suite *ChartRendererTestSuite) SetupTest() {
suite.trie = trie.NewTrie(trie.NewPunctuationSplitter(':'), 3)

suite.setupTrieKey("dev:article:1", 100)
suite.setupTrieKey("dev:article:2", 100)
suite.setupTrieKey("dev:article:3", 100)
suite.setupTrieKey("dev:article:4", 100)
suite.setupTrieKey("dev:article:5", 100)
suite.setupTrieKey("dev:user:bar", 1000)
suite.setupTrieKey("dev:user:foo", 1000)
suite.setupTrieKey("prod:user:bar", 2000)
suite.setupTrieKey("prod:user:foo", 2000)
}

func (suite *ChartRendererTestSuite) setupTrieKey(key string, value int64) {
suite.trie.Add(key, trie.ParamValue{Param: trie.BytesSize, Value: value}, trie.ParamValue{Param: trie.KeysCount, Value: 1})
}

func TestChartRendererTestSuite(t *testing.T) {
suite.Run(t, new(ChartRendererTestSuite))
}

type MockServer struct {
mock.Mock
}

func (m *MockServer) Serve(port int, content string) {
m.Called(port, content)
}

0 comments on commit f069aa5

Please sign in to comment.