mirror of
https://github.com/sosedoff/pgweb.git
synced 2024-12-15 11:52:12 +03:00
038cb620c6
We know that a port is a number. Lets enforce that rule at type level by setting it so. This commit also adjusts test funcs and helper data to fit Port's new int type.
110 lines
2.8 KiB
Go
110 lines
2.8 KiB
Go
package bookmarks
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/sosedoff/pgweb/pkg/shared"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_Invalid_Bookmark_Files(t *testing.T) {
|
|
_, err := readServerConfig("foobar")
|
|
assert.Error(t, err)
|
|
|
|
_, err = readServerConfig("../../data/invalid.toml")
|
|
assert.Error(t, err)
|
|
assert.Equal(t, "Near line 1, key 'invalid encoding': Near line 2: Expected key separator '=', but got '\\n' instead.", err.Error())
|
|
}
|
|
|
|
func Test_Bookmark(t *testing.T) {
|
|
bookmark, err := readServerConfig("../../data/bookmark.toml")
|
|
|
|
assert.Equal(t, nil, err)
|
|
assert.Equal(t, "localhost", bookmark.Host)
|
|
assert.Equal(t, 5432, bookmark.Port)
|
|
assert.Equal(t, "postgres", bookmark.User)
|
|
assert.Equal(t, "mydatabase", bookmark.Database)
|
|
assert.Equal(t, "disable", bookmark.Ssl)
|
|
assert.Equal(t, "", bookmark.Password)
|
|
assert.Equal(t, "", bookmark.Url)
|
|
}
|
|
|
|
func Test_Bookmark_URL(t *testing.T) {
|
|
bookmark, err := readServerConfig("../../data/bookmark_url.toml")
|
|
|
|
assert.Equal(t, nil, err)
|
|
assert.Equal(t, "postgres://username:password@host:port/database?sslmode=disable", bookmark.Url)
|
|
assert.Equal(t, "", bookmark.Host)
|
|
assert.Equal(t, 0, bookmark.Port)
|
|
assert.Equal(t, "", bookmark.User)
|
|
assert.Equal(t, "", bookmark.Database)
|
|
assert.Equal(t, "", bookmark.Ssl)
|
|
assert.Equal(t, "", bookmark.Password)
|
|
}
|
|
|
|
func Test_Bookmarks_Path(t *testing.T) {
|
|
assert.NotEqual(t, "/.pgweb/bookmarks", Path())
|
|
}
|
|
|
|
func Test_Basename(t *testing.T) {
|
|
assert.Equal(t, "filename", fileBasename("filename.toml"))
|
|
assert.Equal(t, "filename", fileBasename("path/filename.toml"))
|
|
assert.Equal(t, "filename", fileBasename("~/long/path/filename.toml"))
|
|
assert.Equal(t, "filename", fileBasename("filename"))
|
|
}
|
|
|
|
func Test_ReadBookmarks_Invalid(t *testing.T) {
|
|
bookmarks, err := ReadAll("foobar")
|
|
|
|
assert.Error(t, err)
|
|
assert.Equal(t, 0, len(bookmarks))
|
|
}
|
|
|
|
func Test_ReadBookmarks(t *testing.T) {
|
|
bookmarks, err := ReadAll("../../data")
|
|
|
|
assert.Equal(t, nil, err)
|
|
assert.Equal(t, 2, len(bookmarks))
|
|
}
|
|
|
|
func Test_GetBookmark(t *testing.T) {
|
|
expBookmark := Bookmark{
|
|
|
|
Host: "localhost",
|
|
Port: 5432,
|
|
User: "postgres",
|
|
Password: "",
|
|
Database: "mydatabase",
|
|
Ssl: "disable",
|
|
}
|
|
b, err := GetBookmark("../../data", "bookmark")
|
|
if assert.NoError(t, err) {
|
|
assert.Equal(t, expBookmark, b)
|
|
}
|
|
|
|
_, err = GetBookmark("../../data", "bar")
|
|
assert.Equal(t, ErrNonExistingBookmark("bar"), err)
|
|
|
|
_, err = GetBookmark("foo", "bookmark")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func Test_Bookmark_SSHInfoIsEmpty(t *testing.T) {
|
|
emptySSH := shared.SSHInfo{
|
|
Host: "",
|
|
Port: "",
|
|
User: "",
|
|
}
|
|
populatedSSH := shared.SSHInfo{
|
|
Host: "localhost",
|
|
Port: "8080",
|
|
User: "postgres",
|
|
}
|
|
|
|
b := Bookmark{Ssh: emptySSH}
|
|
assert.True(t, b.SSHInfoIsEmpty())
|
|
|
|
b.Ssh = populatedSSH
|
|
assert.False(t, b.SSHInfoIsEmpty())
|
|
}
|