PrintToVeraeTimeStamp/internal/auth/token_save_test.go
Grok Bot (for George) 13ebc351f5 0.3.2: Save As filename prompt per print (Windows + macOS)
- promptForFilename setting (default true; env VERAE_PROMPT_FOR_FILENAME),
  'verae-print config --prompt-for-filename', last Save As folder in
  ~/.verae/state.json
- Windows helper: common file dialog (PDF filter, overwrite prompt, topmost
  owner) before stamping; macOS printer path: choose file name (NSSavePanel)
  via 'stamp -prompt-name -title'; cancel discards the job (no stamp/credit)
- job.Options.OutPath: original saved at the chosen path, certificate and
  .verae.json next to it with the chosen base name (never overwritten)
- held jobs keep the chosen path (pendingMeta.OutPath)
- installer: 'Ask for a file name for each print' checkbox; removed the
  'Open the user guide' finish-page checkbox; mac-key-setup asks too
- auth test no longer touches the real macOS keychain (VERAE_SKIP_KEYCHAIN)
- version 0.3.2
2026-10-03 20:00:56 -04:00

31 lines
775 B
Go

package auth
import (
"os"
"path/filepath"
"runtime"
"testing"
)
func TestSaveXVeraeToken(t *testing.T) {
home := t.TempDir()
t.Setenv("HOME", home)
t.Setenv("USERPROFILE", home) // os.UserHomeDir on Windows
t.Setenv("XVERAE_TOKEN", "") // force file path
t.Setenv("VERAE_SKIP_KEYCHAIN", "1") // never touch the real login keychain
if err := SaveXVeraeToken("xVerae-testtoken123"); err != nil {
t.Fatal(err)
}
p := filepath.Join(home, ".verae", "xverae-token")
b, err := os.ReadFile(p)
if err != nil {
t.Fatal(err)
}
if string(b) != "xVerae-testtoken123\n" {
t.Fatalf("%q", b)
}
st, _ := os.Stat(p)
if runtime.GOOS != "windows" && st.Mode().Perm()&0o077 != 0 { // NTFS uses ACLs, not mode bits
t.Fatalf("perms %v", st.Mode())
}
}