wails-release/internal/cleanup/cleanup_test.go

43 lines
1 KiB
Go
Raw Normal View History

package cleanup_test
import (
"errors"
"strings"
"testing"
2026-05-02 01:47:13 +00:00
"lmika.dev/actions/wails-release/internal/cleanup"
)
func TestStack_RunsInReverseOrder(t *testing.T) {
var s cleanup.Stack
calls := []string{}
s.Add(func() error { calls = append(calls, "first"); return nil })
s.Add(func() error { calls = append(calls, "second"); return nil })
s.Run()
want := []string{"second", "first"}
for i := range want {
if calls[i] != want[i] {
t.Fatalf("call %d: got %q want %q (full: %v)", i, calls[i], want[i], calls)
}
}
}
func TestStack_ContinuesAfterError(t *testing.T) {
var s cleanup.Stack
called := []string{}
s.Add(func() error { called = append(called, "a"); return nil })
s.Add(func() error { called = append(called, "b"); return errors.New("boom") })
s.Add(func() error { called = append(called, "c"); return nil })
errs := s.Run()
if len(errs) != 1 || !strings.Contains(errs[0].Error(), "boom") {
t.Fatalf("expected one boom error, got %v", errs)
}
if len(called) != 3 {
t.Fatalf("expected all three to run, got %v", called)
}
}