mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-15 15:54:00 -04:00
* add support for shelly
* fixed terminal failure
* updated to have it not allow adding ignore aur
* updated error strings
* Fixed label
port 1.6
(cherry picked from commit 8fe918ff24)
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package sysupdate
|
|
|
|
import (
|
|
"context"
|
|
"slices"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type customUpgradeTestBackend struct {
|
|
pacmanBackend
|
|
checks int
|
|
}
|
|
|
|
func (b *customUpgradeTestBackend) CheckUpdates(context.Context) ([]Package, error) {
|
|
b.checks++
|
|
return nil, nil
|
|
}
|
|
|
|
func TestCustomUpgradeFailure(t *testing.T) {
|
|
dir := t.TempDir()
|
|
t.Setenv("PATH", dir)
|
|
writeUpdateExecutable(t, dir, "fake-terminal", `while [ "$#" -gt 0 ] && [ "$1" != sh ]; do shift; done
|
|
[ "$#" -gt 0 ] || exit 99
|
|
shift
|
|
exec /bin/sh "$@"`)
|
|
|
|
backend := &customUpgradeTestBackend{}
|
|
m := &Manager{
|
|
selection: Selection{System: backend},
|
|
notifyDirty: make(chan struct{}, 1),
|
|
stopChan: make(chan struct{}),
|
|
}
|
|
m.runCustomUpgrade(t.Context(), UpgradeOptions{
|
|
Terminal: "fake-terminal",
|
|
CustomCommand: "false",
|
|
})
|
|
|
|
state := m.GetState()
|
|
if state.Phase != PhaseError {
|
|
t.Errorf("phase = %s, want %s", state.Phase, PhaseError)
|
|
}
|
|
if state.Error == nil || state.Error.Code != ErrCodeBackendFailed || !strings.Contains(state.Error.Message, "exit status 1") {
|
|
t.Errorf("error = %#v, want backend-failed with exit status 1", state.Error)
|
|
}
|
|
if slices.Contains(state.RecentLog, "Upgrade complete.") {
|
|
t.Error("failed custom upgrade logged success")
|
|
}
|
|
if backend.checks != 0 {
|
|
t.Errorf("failed custom upgrade refreshed %d times", backend.checks)
|
|
}
|
|
}
|