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}