diff --git a/models/config_test.go b/models/config_test.go new file mode 100644 index 0000000..8b9d105 --- /dev/null +++ b/models/config_test.go @@ -0,0 +1,48 @@ +package models + +import ( + "testing" + "github.com/stretchr/testify/assert" + "io/ioutil" + "os" +) + +func TestSetConfig(t *testing.T) { + // Create test database + assert.NoError(t, PrepareTestDatabase()) + + // Write a fake config + configString := `[General] +JWTSecret = Supersecret +Interface = :8080 + +[Database] +Type = sqlite +Path = ./library.db + +[User] +Name = nope +Username = user +Password = 1234 +Email = nope@none.com` + err := ioutil.WriteFile("config.ini", []byte(configString), 0644) + assert.NoError(t, err) + + // Test setConfig + err = SetConfig() + assert.NoError(t, err) + + // Check for the values + assert.Equal(t, []byte("Supersecret"), Config.JWTLoginSecret) + assert.Equal(t, string(":8080"), Config.Interface) + assert.Equal(t, string("sqlite"), Config.Database.Type) + assert.Equal(t, string("./library.db"), Config.Database.Path) + assert.Equal(t, string("nope"), Config.FirstUser.Name) + assert.Equal(t, string("user"), Config.FirstUser.Username) + assert.Equal(t, string("1234"), Config.FirstUser.Password) + assert.Equal(t, string("nope@none.com"), Config.FirstUser.Email) + + // Remove the dummy config + err = os.Remove("config.ini") + assert.NoError(t, err) +}