Skip to content

Commit

Permalink
fix: add more test for transformer
Browse files Browse the repository at this point in the history
  • Loading branch information
karlderkaefer committed Aug 20, 2022
1 parent dcb416d commit 476b438
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions transform/transformer_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package transform

import (
"github.com/karlderkaefer/cdk-notifier/config"
"github.com/stretchr/testify/assert"
"math/rand"
"os"
"testing"
"time"
)

func TestLogTransformer_ReadFile(t *testing.T) {
Expand Down Expand Up @@ -115,4 +118,82 @@ func TestLogTransformer_WriteDiffFile(t *testing.T) {
assert.NoError(t, err)
assert.FileExistsf(t, fileDiff, "Expect diff file to be found")

transformer.Logfile = "/tmp/nonexisting-dir/nofile"
err = transformer.writeDiffFile()
assert.Error(t, err)
}

type TruncateTest struct {
runeCount int
expectedLength int
exceeds bool
}

func randomStringRunes(n int) string {
rand.Seed(time.Now().UnixNano())
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
b := make([]rune, n)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
}
return string(b)
}

func TestLogTransform_Truncate(t *testing.T) {
testCases := []TruncateTest{
{
runeCount: 0,
expectedLength: 0,
exceeds: false,
},
{
runeCount: 100,
expectedLength: 100,
exceeds: false,
},
{
runeCount: 65000,
expectedLength: 65000,
exceeds: false,
},
{
runeCount: 78999,
expectedLength: 65000,
exceeds: true,
},
{
runeCount: 878999,
expectedLength: 65000,
exceeds: true,
},
}
transformer := &LogTransformer{}

for _, c := range testCases {
truncatedLog := "\n...truncated"
transformer.LogContent = randomStringRunes(c.runeCount)
transformer.truncate()
if c.exceeds {
assert.Equal(t, c.expectedLength+len(truncatedLog), len(transformer.LogContent))
} else {
assert.Equal(t, c.expectedLength, len(transformer.LogContent))
}
}
}

func TestNewLogTransformer(t *testing.T) {
c := &config.NotifierConfig{
LogFile: "../data/cdk-nochanges.log",
TagID: "small",
NoPostMode: false,
}
transformer := NewLogTransformer(c)
assert.NotNil(t, transformer)
assert.Equal(t, transformer.LogContent, "")
assert.Equal(t, transformer.TagID, "small")
assert.Equal(t, transformer.NoPostMode, false)

transformer.Process()
assert.Contains(t, transformer.LogContent, "Stack SuiteRedisStack\nThere were no differences")

}

0 comments on commit 476b438

Please sign in to comment.