mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-12 10:55:51 +02:00
feat(wip): self check
This commit is contained in:
parent
5911462f90
commit
ded74bbe0a
40 changed files with 1418 additions and 69 deletions
123
internal/self_check/nginx_conf_test.go
Normal file
123
internal/self_check/nginx_conf_test.go
Normal file
|
@ -0,0 +1,123 @@
|
|||
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)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue