| 77 | } |
| 78 | |
| 79 | func TestConfigFile(t *testing.T) { |
| 80 | mode.Set(mode.TestDev) |
| 81 | file, err := os.Create("config.yml") |
| 82 | defer func() { |
| 83 | file.Close() |
| 84 | }() |
| 85 | assert.Nil(t, err) |
| 86 | _, err = file.WriteString(` |
| 87 | server: |
| 88 | port: 1234 |
| 89 | ssl: |
| 90 | port: 3333 |
| 91 | letsencrypt: |
| 92 | hosts: |
| 93 | - push.example.tld |
| 94 | responseheaders: |
| 95 | Access-Control-Allow-Origin: "*" |
| 96 | Access-Control-Allow-Methods: "GET,POST" |
| 97 | cors: |
| 98 | alloworigins: |
| 99 | - ".*" |
| 100 | - ".+" |
| 101 | allowmethods: |
| 102 | - "GET" |
| 103 | - "POST" |
| 104 | allowheaders: |
| 105 | - "Authorization" |
| 106 | - "content-type" |
| 107 | stream: |
| 108 | allowedorigins: |
| 109 | - ".+.example.com" |
| 110 | - "otherdomain.com" |
| 111 | database: |
| 112 | dialect: mysql |
| 113 | connection: user name |
| 114 | defaultuser: |
| 115 | name: nicories |
| 116 | pass: 12345 |
| 117 | pluginsdir: data/plugins |
| 118 | `) |
| 119 | file.Close() |
| 120 | assert.Nil(t, err) |
| 121 | conf := Get() |
| 122 | assert.Equal(t, 1234, conf.Server.Port) |
| 123 | assert.Equal(t, 3333, conf.Server.SSL.Port) |
| 124 | assert.Equal(t, []string{"push.example.tld"}, conf.Server.SSL.LetsEncrypt.Hosts) |
| 125 | assert.Equal(t, "nicories", conf.DefaultUser.Name) |
| 126 | assert.Equal(t, "12345", conf.DefaultUser.Pass) |
| 127 | assert.Equal(t, "mysql", conf.Database.Dialect) |
| 128 | assert.Equal(t, "user name", conf.Database.Connection) |
| 129 | assert.Equal(t, "*", conf.Server.ResponseHeaders["Access-Control-Allow-Origin"]) |
| 130 | assert.Equal(t, "GET,POST", conf.Server.ResponseHeaders["Access-Control-Allow-Methods"]) |
| 131 | assert.Equal(t, []string{".*", ".+"}, conf.Server.Cors.AllowOrigins) |
| 132 | assert.Equal(t, []string{"GET", "POST"}, conf.Server.Cors.AllowMethods) |
| 133 | assert.Equal(t, []string{"Authorization", "content-type"}, conf.Server.Cors.AllowHeaders) |
| 134 | assert.Equal(t, []string{".+.example.com", "otherdomain.com"}, conf.Server.Stream.AllowedOrigins) |
| 135 | assert.Equal(t, "data/plugins", conf.PluginsDir) |
| 136 | |