Files
yay/pkg/settings/lua/load_test.go
T
Jo ecae3e601e Add Lua configuration support (#2845)
* lua opt trial

* go mod tidy
2026-06-09 00:31:26 +02:00

57 lines
1.2 KiB
Go

package lua
import (
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
)
func writeLuaFile(t *testing.T, body string) string {
t.Helper()
dir := t.TempDir()
path := filepath.Join(dir, "init.lua")
require.NoError(t, os.WriteFile(path, []byte(body), 0o600))
return path
}
func TestLoadIntoStrictFailsOnUnknownKey(t *testing.T) {
path := writeLuaFile(t, `
yay.opt.unknown_key = true
`)
cfg := &testConfig{}
err := LoadInto(nil, path, cfg)
require.Error(t, err)
require.Contains(t, err.Error(), "unknown yay.opt key: unknown_key")
}
func TestLoadIntoStrictFailsOnTypeMismatch(t *testing.T) {
path := writeLuaFile(t, `
yay.opt.devel = "true"
`)
cfg := &testConfig{}
err := LoadInto(nil, path, cfg)
require.Error(t, err)
require.Contains(t, err.Error(), "yay.opt.devel: expected boolean")
}
func TestLoadIntoAppliesValidValues(t *testing.T) {
path := writeLuaFile(t, `
yay.opt.build_dir = "/tmp/yay"
yay.opt.request_split_n = 123
yay.opt.devel = true
`)
cfg := &testConfig{}
err := LoadInto(nil, path, cfg)
require.NoError(t, err)
require.Equal(t, "/tmp/yay", cfg.BuildDir)
require.Equal(t, 123, cfg.RequestSplitN)
require.True(t, cfg.Devel)
}