Skip to content

Commit

Permalink
add tests for table name util and map util; update test for config
Browse files Browse the repository at this point in the history
  • Loading branch information
KarnerTh committed Dec 30, 2022
1 parent 8c52c4c commit d1be491
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 0 deletions.
10 changes: 10 additions & 0 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ selectedTables:
showAllConstraints: true
outputFileName: "my-db.mmd"
encloseWithMermaidBackticks: false
debug: true
omitConstraintLabels: true
omitAttributeKeys: true
showEnumValues: true
useAllSchemas: true
# These connection strings are available as suggestions in the cli (use tab to access)
connectionStringSuggestions:
Expand All @@ -46,4 +51,9 @@ connectionStringSuggestions:
assert.Equal(t, "my-db.mmd", config.OutputFileName())
assert.Equal(t, false, config.EncloseWithMermaidBackticks())
assert.ElementsMatch(t, []string{"suggestion1", "suggestion2"}, config.ConnectionStringSuggestions())
assert.True(t, config.Debug())
assert.True(t, config.OmitConstraintLabels())
assert.True(t, config.OmitAttributeKeys())
assert.True(t, config.ShowEnumValues())
assert.True(t, config.UseAllSchemas())
}
68 changes: 68 additions & 0 deletions database/table_name_util_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package database

import (
"fmt"
"testing"

"github.com/stretchr/testify/assert"
)

func TestParseTableName(t *testing.T) {
testCases := []struct {
value string
selectedSchemas []string
expectedResult TableDetail
shouldFail bool
}{
{
value: "public.tableA",
selectedSchemas: []string{},
expectedResult: TableDetail{Schema: "public", Name: "tableA"},
shouldFail: false,
},
{
value: "tableA",
selectedSchemas: []string{"public"},
expectedResult: TableDetail{Schema: "public", Name: "tableA"},
shouldFail: false,
},
{
value: "tableA",
selectedSchemas: []string{},
expectedResult: TableDetail{},
shouldFail: true,
},
{
value: "tableA",
selectedSchemas: []string{"public", "other_db"},
expectedResult: TableDetail{},
shouldFail: true,
},
{
value: "public.other_db.tableA",
selectedSchemas: []string{"public", "other_db"},
expectedResult: TableDetail{},
shouldFail: true,
},
}

for index, testCase := range testCases {
t.Run(fmt.Sprintf("run #%d", index), func(t *testing.T) {
// Arrange
value := testCase.value
selectedSchemas := testCase.selectedSchemas

// Act
result, err := ParseTableName(value, selectedSchemas)

// Assert
if testCase.shouldFail {
assert.NotNil(t, err)
} else {
assert.Nil(t, err)
}

assert.Equal(t, testCase.expectedResult, result)
})
}
}
22 changes: 22 additions & 0 deletions util/map_util_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package util

import (
"fmt"
"testing"

"github.com/stretchr/testify/assert"
)

func TestMap2(t *testing.T) {
// Arrange
input := []int{1, 2, 3}

// Act
result := Map2(input, func(value int) string {
return fmt.Sprintf("value: %d", value)
})

// Assert
expectedResult := []string{"value: 1", "value: 2", "value: 3"}
assert.ElementsMatch(t, expectedResult, result)
}

0 comments on commit d1be491

Please sign in to comment.