dnote/pkg/server/database/database_test.go
Sung Won Cho 2c82e36f7a
Require database connection configuraton (#228)
* Require explicit configuration for database connection

* Test validation

* Remove stutter

* Only use packr for self hosting

* Restart server upon change
2019-07-24 17:32:12 +10:00

79 lines
1.4 KiB
Go

package database
import (
"github.com/dnote/dnote/pkg/assert"
"testing"
)
func TestValidateConfig(t *testing.T) {
testCases := []struct {
input Config
expected error
}{
{
input: Config{
Host: "mockHost",
Port: "mockPort",
Name: "mockName",
User: "mockUser",
Password: "mockPassword",
},
expected: nil,
},
{
input: Config{
Host: "mockHost",
Port: "mockPort",
Name: "mockName",
User: "mockUser",
},
expected: nil,
},
{
input: Config{
Port: "mockPort",
Name: "mockName",
User: "mockUser",
Password: "mockPassword",
},
expected: ErrConfigMissingHost,
},
{
input: Config{
Host: "mockHost",
Name: "mockName",
User: "mockUser",
Password: "mockPassword",
},
expected: ErrConfigMissingPort,
},
{
input: Config{
Host: "mockHost",
Port: "mockPort",
User: "mockUser",
Password: "mockPassword",
},
expected: ErrConfigMissingName,
},
{
input: Config{
Host: "mockHost",
Port: "mockPort",
Name: "mockName",
Password: "mockPassword",
},
expected: ErrConfigMissingUser,
},
{
input: Config{},
expected: ErrConfigMissingHost,
},
}
for _, tc := range testCases {
result := validateConfig(tc.input)
assert.Equal(t, result, tc.expected, "result mismatch")
}
}