cmd/gondole-cli/config_test.go
changeset 69 3474d0f36259
parent 67 1ff7afce37fe
child 73 d601c957d789
equal deleted inserted replaced
68:6252b7eea308 69:3474d0f36259
       
     1 package gondole
       
     2 
       
     3 import (
       
     4 	"github.com/stretchr/testify/assert"
       
     5 	"os"
       
     6 	"path/filepath"
       
     7 	"testing"
       
     8 )
       
     9 
       
    10 func TestLoadGlobal(t *testing.T) {
       
    11 	baseDir = "."
       
    12 
       
    13 	_, err := loadGlobal(filepath.Join("test", "non.toml"))
       
    14 	assert.Error(t, err, "does not exist")
       
    15 
       
    16 	_, err = loadGlobal(filepath.Join("test", "garbage.token"))
       
    17 	assert.Error(t, err, "just garbage")
       
    18 
       
    19 	// git does now allow you to checkin 000 files :(
       
    20 	err = os.Chmod(filepath.Join("test", "perms.toml"), 0000)
       
    21 	assert.NoError(t, err, "should be fine")
       
    22 	_, err = loadGlobal(filepath.Join("test", "perms.toml"))
       
    23 	assert.Error(t, err, "unreadable")
       
    24 	err = os.Chmod(filepath.Join("test", "perms.toml"), 0600)
       
    25 	assert.NoError(t, err, "should be fine")
       
    26 
       
    27 	c, err := loadGlobal(filepath.Join("test", "config.toml"))
       
    28 	assert.NoError(t, err, "should read it fine")
       
    29 	assert.EqualValues(t, "foo", c.Default, "equal")
       
    30 }
       
    31 
       
    32 func TestLoadInstance(t *testing.T) {
       
    33 	baseDir = "."
       
    34 
       
    35 	_, err := loadInstance("nonexistent")
       
    36 	assert.Error(t, err, "does not exist")
       
    37 
       
    38 	file := filepath.Join("test", "garbage")
       
    39 	_, err = loadInstance(file)
       
    40 	assert.Error(t, err, "just garbage")
       
    41 
       
    42 	file = filepath.Join("test", "foo.token")
       
    43 	err = os.Chmod(file, 0000)
       
    44 	assert.NoError(t, err, "should be fine")
       
    45 
       
    46 	file = filepath.Join("test", "foo")
       
    47 	_, err = loadInstance(file)
       
    48 	assert.Error(t, err, "unreadable")
       
    49 
       
    50 	file = filepath.Join("test", "foo.token")
       
    51 	err = os.Chmod(file, 0644)
       
    52 	assert.NoError(t, err, "should be fine")
       
    53 
       
    54 	real := &Server{
       
    55 		ID:          "666",
       
    56 		Name:        "foo",
       
    57 		BearerToken: "d3b07384d113edec49eaa6238ad5ff00",
       
    58 		BaseURL:     "https://mastodon.social",
       
    59 	}
       
    60 	file = filepath.Join("test", "foo")
       
    61 	s, err := loadInstance(file)
       
    62 	assert.NoError(t, err, "all fine")
       
    63 	assert.Equal(t, real, s, "equal")
       
    64 }
       
    65 
       
    66 func TestGetInstanceList(t *testing.T) {
       
    67 	baseDir = "test"
       
    68 
       
    69 	real := []string{
       
    70 		filepath.Join("test", "foo.token"),
       
    71 		filepath.Join("test", "garbage.token"),
       
    72 	}
       
    73 	list := GetInstanceList()
       
    74 	assert.Equal(t, real, list, "equal")
       
    75 
       
    76 	baseDir = "/tmp"
       
    77 	real = nil
       
    78 	list = GetInstanceList()
       
    79 	assert.Equal(t, real, list, "equal")
       
    80 
       
    81 	baseDir = "/nonexistent"
       
    82 	real = nil
       
    83 	list = GetInstanceList()
       
    84 	assert.Equal(t, real, list, "equal")
       
    85 }
       
    86 
       
    87 func TestLoadConfig(t *testing.T) {
       
    88 	baseDir = "test"
       
    89 
       
    90 	_, err := LoadConfig("foo")
       
    91 	assert.NoError(t, err, "should be fine")
       
    92 
       
    93 	_, err = LoadConfig("")
       
    94 	assert.NoError(t, err, "should be fine")
       
    95 
       
    96 	err = os.Chmod(filepath.Join("test", "config.toml"), 0000)
       
    97 	assert.NoError(t, err, "should be fine")
       
    98 
       
    99 	_, err = LoadConfig("")
       
   100 	assert.Error(t, err, "should be unreadable")
       
   101 
       
   102 	err = os.Chmod(filepath.Join("test", "config.toml"), 0600)
       
   103 	assert.NoError(t, err, "should be fine")
       
   104 
       
   105 }