wails-release/internal/codesign/keychain_test.go
2026-05-02 11:47:13 +10:00

74 lines
2.1 KiB
Go

package codesign_test
import (
"context"
"reflect"
"testing"
"lmika.dev/actions/wails-release/internal/codesign"
"lmika.dev/actions/wails-release/internal/runner"
)
func TestCreateKeychain_BuildsCorrectArgs(t *testing.T) {
f := &runner.Fake{}
f.On("security", nil).Return(nil, nil)
kc, err := codesign.CreateKeychain(context.Background(), f, "/tmp/foo.keychain", "pw")
if err != nil {
t.Fatalf("unexpected: %v", err)
}
if kc.Path != "/tmp/foo.keychain" {
t.Fatalf("kc.Path got %q want /tmp/foo.keychain", kc.Path)
}
want := [][]string{
{"create-keychain", "-p", "pw", "/tmp/foo.keychain"},
{"set-keychain-settings", "-lut", "21600", "/tmp/foo.keychain"},
{"unlock-keychain", "-p", "pw", "/tmp/foo.keychain"},
}
for i, w := range want {
if !reflect.DeepEqual(f.Calls[i].Args, w) {
t.Fatalf("call %d: got %v want %v", i, f.Calls[i].Args, w)
}
}
}
func TestImportP12_BuildsCorrectArgs(t *testing.T) {
f := &runner.Fake{}
f.On("security", nil).Return(nil, nil)
err := codesign.ImportP12(context.Background(), f, codesign.Keychain{Path: "/tmp/k", Password: "pw"}, "/tmp/c.p12", "certpw")
if err != nil {
t.Fatalf("unexpected: %v", err)
}
want := []string{
"import", "/tmp/c.p12", "-k", "/tmp/k", "-P", "certpw",
"-T", "/usr/bin/codesign",
}
if !reflect.DeepEqual(f.Calls[0].Args, want) {
t.Fatalf("args got %v want %v", f.Calls[0].Args, want)
}
// Partition list set so codesign can use the imported key non-interactively.
wantPartition := []string{
"set-key-partition-list", "-S", "apple-tool:,apple:,codesign:",
"-s", "-k", "pw", "/tmp/k",
}
if !reflect.DeepEqual(f.Calls[1].Args, wantPartition) {
t.Fatalf("partition args got %v want %v", f.Calls[1].Args, wantPartition)
}
}
func TestDeleteKeychain_BuildsCorrectArgs(t *testing.T) {
f := &runner.Fake{}
f.On("security", nil).Return(nil, nil)
err := codesign.DeleteKeychain(context.Background(), f, codesign.Keychain{Path: "/tmp/k"})
if err != nil {
t.Fatalf("unexpected: %v", err)
}
want := []string{"delete-keychain", "/tmp/k"}
if !reflect.DeepEqual(f.Calls[0].Args, want) {
t.Fatalf("args got %v want %v", f.Calls[0].Args, want)
}
}