mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-18 09:14:01 -04:00
- niri, mango & hyprland supported - `dms systemd enable/disable/status/start/stop/restart` supported
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/deps"
|
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/mangoconf"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDisableSessionRemovesEveryWantsLink(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
for _, unit := range []string{HyprlandSessionTarget, mangoconf.SessionTarget} {
|
|
link := WantsLink(unit)
|
|
require.NoError(t, os.MkdirAll(filepath.Dir(link), 0o755))
|
|
require.NoError(t, os.Symlink("/dev/null", link))
|
|
}
|
|
var reloads int
|
|
prev := systemctlUser
|
|
systemctlUser = func(args ...string) error {
|
|
if args[0] == "daemon-reload" {
|
|
reloads++
|
|
}
|
|
return nil
|
|
}
|
|
t.Cleanup(func() { systemctlUser = prev })
|
|
|
|
assert.Equal(t, []string{HyprlandSessionTarget, mangoconf.SessionTarget}, SessionWanted())
|
|
removed, err := DisableSession()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string{HyprlandSessionTarget, mangoconf.SessionTarget}, removed)
|
|
assert.Empty(t, SessionWanted())
|
|
assert.Equal(t, 1, reloads)
|
|
|
|
removed, err = DisableSession()
|
|
require.NoError(t, err)
|
|
assert.Nil(t, removed)
|
|
assert.Equal(t, 1, reloads)
|
|
}
|
|
|
|
func TestEnableSessionMangoWithoutTarget(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
calls := stubMango(t, mangoconf.Snake, false, nil)
|
|
unit, err := EnableSession(deps.WindowManagerMango)
|
|
require.Error(t, err)
|
|
assert.Empty(t, unit)
|
|
assert.Equal(t, 0, *calls)
|
|
}
|