1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-26 10:36:23 -07:00
gochan/pkg/config/preload_test.go
2024-10-13 23:18:29 -07:00

59 lines
1.2 KiB
Go

package config
import (
"testing"
"github.com/stretchr/testify/assert"
lua "github.com/yuin/gopher-lua"
)
type preloadTest struct {
desc string
luaIn string
expectOut lua.LValue
expectError bool
}
func (tC *preloadTest) run(t *testing.T) {
l := lua.NewState()
l.PreloadModule("config", PreloadModule)
err := l.DoString(tC.luaIn)
if tC.expectError {
assert.Error(t, err)
return
} else if !assert.NoError(t, err) {
return
}
luaOut := l.Get(-1)
assert.Equal(t, tC.expectOut, luaOut)
}
func TestPreload(t *testing.T) {
InitConfig("4.0.0")
testCases := []preloadTest{
{
desc: "access system critical config from lua",
luaIn: `local config = require("config")
sys_cfg = config.system_critical_config()
return sys_cfg.ListenIP`,
expectOut: lua.LString("127.0.0.1"),
},
{
desc: "access site config from lua",
luaIn: `local config = require("config")
site_cfg = config.site_config()
return site_cfg.CookieMaxAge`,
expectOut: lua.LString("1y"),
},
{
desc: "access board config from lua",
luaIn: `local config = require("config")
site_cfg = config.board_config("b")
return site_cfg.RenderURLsAsLinks`,
expectOut: lua.LTrue,
},
}
for _, tC := range testCases {
t.Run(tC.desc, tC.run)
}
}