mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 21:42:26 -05:00
Implement Cobra CLI tooling, Viper config tooling (#336)
* start pulling out + replacing urfave and config * replace many many instances of config * move more stuff => viper * properly remove urfave * move some flags to root command * add testrig commands to root * alias config file keys * start adding cli parsing tests * reorder viper init * remove config path alias * fmt * change config file keys to non-nested * we're more or less in business now * tidy up the common func * go fmt * get tests passing again * add note about the cliparsing tests * reorganize * update docs with changes * structure cmd dir better * rename + move some files around * fix dangling comma
This commit is contained in:
parent
182b4eea73
commit
0884f89431
487 changed files with 46667 additions and 8831 deletions
|
|
@ -16,68 +16,68 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package router
|
||||
package router_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/suite"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/config"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/router"
|
||||
"github.com/superseriousbusiness/gotosocial/testrig"
|
||||
)
|
||||
|
||||
type SessionTestSuite struct {
|
||||
suite.Suite
|
||||
}
|
||||
|
||||
func (suite *SessionTestSuite) TestDeriveSessionNameLocalhostWithPort() {
|
||||
cfg := &config.Config{
|
||||
Protocol: "http",
|
||||
Host: "localhost:8080",
|
||||
}
|
||||
func (suite *SessionTestSuite) SetupTest() {
|
||||
testrig.InitTestConfig()
|
||||
}
|
||||
|
||||
sessionName, err := sessionName(cfg)
|
||||
func (suite *SessionTestSuite) TestDeriveSessionNameLocalhostWithPort() {
|
||||
viper.Set(config.Keys.Protocol, "http")
|
||||
viper.Set(config.Keys.Host, "localhost:8080")
|
||||
|
||||
sessionName, err := router.SessionName()
|
||||
suite.NoError(err)
|
||||
suite.Equal("gotosocial-localhost", sessionName)
|
||||
}
|
||||
|
||||
func (suite *SessionTestSuite) TestDeriveSessionNameLocalhost() {
|
||||
cfg := &config.Config{
|
||||
Protocol: "http",
|
||||
Host: "localhost",
|
||||
}
|
||||
viper.Set(config.Keys.Protocol, "http")
|
||||
viper.Set(config.Keys.Host, "localhost")
|
||||
|
||||
sessionName, err := sessionName(cfg)
|
||||
sessionName, err := router.SessionName()
|
||||
suite.NoError(err)
|
||||
suite.Equal("gotosocial-localhost", sessionName)
|
||||
}
|
||||
|
||||
func (suite *SessionTestSuite) TestDeriveSessionNoProtocol() {
|
||||
cfg := &config.Config{
|
||||
Host: "localhost",
|
||||
}
|
||||
viper.Set(config.Keys.Protocol, "")
|
||||
viper.Set(config.Keys.Host, "localhost")
|
||||
|
||||
sessionName, err := sessionName(cfg)
|
||||
sessionName, err := router.SessionName()
|
||||
suite.EqualError(err, "parse \"://localhost\": missing protocol scheme")
|
||||
suite.Equal("", sessionName)
|
||||
}
|
||||
|
||||
func (suite *SessionTestSuite) TestDeriveSessionNoHost() {
|
||||
cfg := &config.Config{
|
||||
Protocol: "https",
|
||||
}
|
||||
viper.Set(config.Keys.Protocol, "https")
|
||||
viper.Set(config.Keys.Host, "")
|
||||
viper.Set(config.Keys.Port, 0)
|
||||
|
||||
sessionName, err := sessionName(cfg)
|
||||
sessionName, err := router.SessionName()
|
||||
suite.EqualError(err, "could not derive hostname without port from https://")
|
||||
suite.Equal("", sessionName)
|
||||
}
|
||||
|
||||
func (suite *SessionTestSuite) TestDeriveSessionOK() {
|
||||
cfg := &config.Config{
|
||||
Protocol: "https",
|
||||
Host: "example.org",
|
||||
}
|
||||
viper.Set(config.Keys.Protocol, "https")
|
||||
viper.Set(config.Keys.Host, "example.org")
|
||||
|
||||
sessionName, err := sessionName(cfg)
|
||||
sessionName, err := router.SessionName()
|
||||
suite.NoError(err)
|
||||
suite.Equal("gotosocial-example.org", sessionName)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue