1 package database
2 3 import (
4 "testing"
5 )
6 7 func TestGetSerialById(t *testing.T) {
8 // Use shared database (skips in short mode)
9 db, _ := GetSharedDB(t)
10 savedEvents := GetSharedEvents(t)
11 12 if len(savedEvents) < 4 {
13 t.Fatalf("Need at least 4 saved events, got %d", len(savedEvents))
14 }
15 testEvent := savedEvents[3]
16 17 // Get the serial by ID
18 serial, err := db.GetSerialById(testEvent.ID)
19 if err != nil {
20 t.Fatalf("Failed to get serial by ID: %v", err)
21 }
22 23 // Verify the serial is not nil
24 if serial == nil {
25 t.Fatal("Expected serial to be non-nil, but got nil")
26 }
27 28 // Test with a non-existent ID
29 nonExistentId := make([]byte, len(testEvent.ID))
30 // Ensure it's different from any real ID
31 for i := range nonExistentId {
32 nonExistentId[i] = ^testEvent.ID[i]
33 }
34 35 serial, err = db.GetSerialById(nonExistentId)
36 if err == nil {
37 t.Fatalf("Expected error for non-existent ID, but got none")
38 }
39 40 // For non-existent Ids, the function should return nil serial and an error
41 if serial != nil {
42 t.Fatalf("Expected nil serial for non-existent ID, but got: %v", serial)
43 }
44 }
45