mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 18:35:51 +02:00
123 lines
4 KiB
Go
123 lines
4 KiB
Go
package self_check
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/0xJacky/Nginx-UI/settings"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/uozi-tech/cosy"
|
|
"github.com/uozi-tech/cosy/logger"
|
|
)
|
|
|
|
func TestCheckNginxConfIncludeSites(t *testing.T) {
|
|
// test ok
|
|
logger.Init("debug")
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/ok.conf"
|
|
var result *cosy.Error
|
|
errors.As(CheckNginxConfIncludeSites(), &result)
|
|
assert.Nil(t, result)
|
|
|
|
// test 4041 nginx.conf not found
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/4041.conf"
|
|
errors.As(CheckNginxConfIncludeSites(), &result)
|
|
assert.Equal(t, int32(4041), result.Code)
|
|
|
|
// test 5001 nginx.conf parse error
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/5001.conf"
|
|
errors.As(CheckNginxConfIncludeSites(), &result)
|
|
assert.Equal(t, int32(5001), result.Code)
|
|
|
|
// test 4042 nginx.conf no http block
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-block.conf"
|
|
errors.As(CheckNginxConfIncludeSites(), &result)
|
|
assert.Equal(t, int32(4042), result.Code)
|
|
|
|
// test 4043 nginx.conf not include sites-enabled
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-sites-enabled.conf"
|
|
errors.As(CheckNginxConfIncludeSites(), &result)
|
|
assert.Equal(t, int32(4043), result.Code)
|
|
}
|
|
|
|
func TestCheckNginxConfIncludeStreams(t *testing.T) {
|
|
// test ok
|
|
logger.Init("debug")
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/ok.conf"
|
|
var result *cosy.Error
|
|
errors.As(CheckNginxConfIncludeStreams(), &result)
|
|
assert.Nil(t, result)
|
|
|
|
// test 4041 nginx.conf not found
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/4041.conf"
|
|
errors.As(CheckNginxConfIncludeStreams(), &result)
|
|
assert.Equal(t, int32(4041), result.Code)
|
|
|
|
// test 5001 nginx.conf parse error
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/5001.conf"
|
|
errors.As(CheckNginxConfIncludeStreams(), &result)
|
|
assert.Equal(t, int32(5001), result.Code)
|
|
|
|
// test 4044 nginx.conf no stream block
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-block.conf"
|
|
errors.As(CheckNginxConfIncludeStreams(), &result)
|
|
assert.Equal(t, int32(4044), result.Code)
|
|
|
|
// test 4045 nginx.conf not include stream-enabled
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-sites-enabled.conf"
|
|
errors.As(CheckNginxConfIncludeStreams(), &result)
|
|
assert.Equal(t, int32(4045), result.Code)
|
|
}
|
|
|
|
func TestFixNginxConfIncludeSites(t *testing.T) {
|
|
logger.Init("debug")
|
|
settings.NginxSettings.ConfigDir = "/etc/nginx"
|
|
|
|
// copy file
|
|
content, err := os.ReadFile("./test_cases/no-http-block.conf")
|
|
assert.Nil(t, err)
|
|
|
|
err = os.WriteFile("./test_cases/no-http-block-fixed.conf", content, 0644)
|
|
assert.Nil(t, err)
|
|
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-block-fixed.conf"
|
|
var result *cosy.Error
|
|
errors.As(FixNginxConfIncludeSites(), &result)
|
|
assert.Nil(t, result)
|
|
|
|
// copy file
|
|
content, err = os.ReadFile("./test_cases/no-http-sites-enabled.conf")
|
|
assert.Nil(t, err)
|
|
err = os.WriteFile("./test_cases/no-http-sites-enabled-fixed.conf", content, 0644)
|
|
assert.Nil(t, err)
|
|
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-sites-enabled-fixed.conf"
|
|
errors.As(FixNginxConfIncludeSites(), &result)
|
|
assert.Nil(t, result)
|
|
|
|
settings.NginxSettings.ConfigPath = "./test_cases/no-http-sites-enabled-fixed.conf"
|
|
errors.As(FixNginxConfIncludeStreams(), &result)
|
|
assert.Nil(t, result)
|
|
|
|
// remove backup files (./test_cases/*.bak.*)
|
|
files, err := os.ReadDir("./test_cases")
|
|
assert.Nil(t, err)
|
|
|
|
for _, file := range files {
|
|
if strings.Contains(file.Name(), ".bak.") {
|
|
err = os.Remove("./test_cases/" + file.Name())
|
|
assert.Nil(t, err)
|
|
}
|
|
}
|
|
}
|