master
 1package generate
 2
 3import (
 4	"encoding/base64"
 5	"testing"
 6)
 7
 8func TestGenerateKey(t *testing.T) {
 9	key, err := generateKey(48)
10	if err != nil {
11		t.Fatalf("generateKey() returned error: %v", err)
12	}
13
14	if len(key) == 0 {
15		t.Error("generateKey() returned empty key")
16	}
17
18	// Verify it's valid base64
19	_, err = base64.URLEncoding.DecodeString(key)
20	if err != nil {
21		t.Errorf("generateKey() returned invalid base64: %v", err)
22	}
23}
24
25func TestGenerateKeyDifferentSizes(t *testing.T) {
26	sizes := []int{16, 32, 48, 64}
27
28	for _, size := range sizes {
29		t.Run(string(rune(size)), func(t *testing.T) {
30			key, err := generateKey(size)
31			if err != nil {
32				t.Fatalf("generateKey(%d) returned error: %v", size, err)
33			}
34
35			if len(key) == 0 {
36				t.Errorf("generateKey(%d) returned empty key", size)
37			}
38		})
39	}
40}
41
42func TestKey(t *testing.T) {
43	// Test that Key() doesn't panic and returns error properly
44	err := Key()
45	// May fail due to clipboard, but should return error not panic
46	if err != nil {
47		t.Logf("Key() returned error (expected in test environment): %v", err)
48	}
49}