Files
yay/pkg/settings/lua/load_test.go
T
Jo 3b3a2b1dcc fix: search filter hooking and multierror cleanup (#2868)
* fix search filtering pass along

* prepare inclusion 'modernize' linter and use errors.join instead
2026-06-17 19:34:33 +02:00

78 lines
1.6 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) {
t.Parallel()
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) {
t.Parallel()
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) {
t.Parallel()
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)
}
func TestLoadReturnsLiveEngine(t *testing.T) {
t.Parallel()
path := writeLuaFile(t, `
yay.create_autocmd("AURPreInstall", {
callback = function() end,
})
yay.opt.build_dir = "/tmp/yay"
`)
cfg := &testConfig{}
engine, err := Load(nil, path, cfg)
require.NoError(t, err)
t.Cleanup(engine.Close)
require.Equal(t, "/tmp/yay", cfg.BuildDir)
require.True(t, engine.HasAutocmd(EventAURPreInstall))
}