pgweb/pkg/bookmarks/bookmarks_test.go

142 lines
3.6 KiB
Go
Raw Normal View History

2015-04-30 19:47:07 +03:00
package bookmarks
2015-03-04 05:44:14 +03:00
import (
"testing"
"github.com/sosedoff/pgweb/pkg/command"
"github.com/sosedoff/pgweb/pkg/shared"
2015-03-04 05:44:14 +03:00
"github.com/stretchr/testify/assert"
)
func Test_Invalid_Bookmark_Files(t *testing.T) {
2015-03-04 17:58:53 +03:00
_, err := readServerConfig("foobar")
assert.Error(t, err)
2015-04-30 20:09:29 +03:00
_, err = readServerConfig("../../data/invalid.toml")
2015-03-04 17:58:53 +03:00
assert.Error(t, err)
2022-05-21 04:36:11 +03:00
assert.Equal(t, "toml: line 1: expected '.' or '=', but got 'e' instead", err.Error())
2015-03-04 05:44:14 +03:00
}
func Test_Bookmark(t *testing.T) {
2015-04-30 20:09:29 +03:00
bookmark, err := readServerConfig("../../data/bookmark.toml")
2015-03-04 05:44:14 +03:00
assert.Equal(t, nil, err)
assert.Equal(t, "localhost", bookmark.Host)
assert.Equal(t, 5432, bookmark.Port)
2015-03-04 05:44:14 +03:00
assert.Equal(t, "postgres", bookmark.User)
assert.Equal(t, "mydatabase", bookmark.Database)
assert.Equal(t, "disable", bookmark.Ssl)
assert.Equal(t, "", bookmark.Password)
2019-11-02 21:00:23 +03:00
assert.Equal(t, "", bookmark.URL)
bookmark, err = readServerConfig("../../data/bookmark_invalid_ssl.toml")
assert.Equal(t, nil, err)
assert.Equal(t, "disable", bookmark.Ssl)
2015-03-04 05:44:14 +03:00
}
func Test_Bookmark_URL(t *testing.T) {
2015-04-30 20:09:29 +03:00
bookmark, err := readServerConfig("../../data/bookmark_url.toml")
2015-03-04 05:44:14 +03:00
assert.Equal(t, nil, err)
2019-11-02 21:00:23 +03:00
assert.Equal(t, "postgres://username:password@host:port/database?sslmode=disable", bookmark.URL)
2015-03-04 05:44:14 +03:00
assert.Equal(t, "", bookmark.Host)
assert.Equal(t, 5432, bookmark.Port)
2015-03-04 05:44:14 +03:00
assert.Equal(t, "", bookmark.User)
assert.Equal(t, "", bookmark.Database)
assert.Equal(t, "disable", bookmark.Ssl)
2015-03-04 05:44:14 +03:00
assert.Equal(t, "", bookmark.Password)
}
func Test_Bookmarks_Path(t *testing.T) {
2017-01-24 04:06:12 +03:00
assert.NotEqual(t, "/.pgweb/bookmarks", Path(""))
2015-03-04 05:44:14 +03:00
}
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) {
2015-04-30 20:09:29 +03:00
bookmarks, err := ReadAll("foobar")
2015-03-04 05:44:14 +03:00
assert.Error(t, err)
assert.Equal(t, 0, len(bookmarks))
}
func Test_ReadBookmarks(t *testing.T) {
2015-04-30 20:09:29 +03:00
bookmarks, err := ReadAll("../../data")
2015-03-04 05:44:14 +03:00
assert.Equal(t, nil, err)
assert.Equal(t, 3, len(bookmarks))
2015-03-04 05:44:14 +03:00
}
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")
expErrStr := "couldn't find a bookmark with name bar"
assert.Equal(t, expErrStr, err.Error())
_, 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",
}
2019-11-02 21:00:23 +03:00
b := Bookmark{SSH: nil}
assert.True(t, b.SSHInfoIsEmpty())
2019-11-02 21:00:23 +03:00
b = Bookmark{SSH: emptySSH}
assert.True(t, b.SSHInfoIsEmpty())
2019-11-02 21:00:23 +03:00
b.SSH = populatedSSH
assert.False(t, b.SSHInfoIsEmpty())
}
func Test_ConvertToOptions(t *testing.T) {
b := Bookmark{
2019-11-02 21:00:23 +03:00
URL: "postgres://username:password@host:port/database?sslmode=disable",
Host: "localhost",
Port: 5432,
User: "postgres",
Password: "password",
Database: "mydatabase",
Ssl: "disable",
}
expOpt := command.Options{
2019-11-02 21:00:23 +03:00
URL: "postgres://username:password@host:port/database?sslmode=disable",
Host: "localhost",
Port: 5432,
User: "postgres",
Pass: "password",
DbName: "mydatabase",
Ssl: "disable",
}
opt := b.ConvertToOptions()
assert.Equal(t, expOpt, opt)
}