package services import ( "context" "testing" "jd-book-uploader/models" ) func TestCreateBook(t *testing.T) { // This test requires a running database // Skip if not available t.Skip("Skipping CreateBook test - requires running database") ctx := context.Background() // This test would require: // 1. Database connection initialized // 2. Valid test data // 3. Cleanup after test req := &models.BookCreateRequest{ BookName: "Test Book", Cost: 10.50, Price: 15.99, Discount: 0, Quantity: 100, PublisherAuthor: "Test Publisher", Category: "Fiction", Description: "A test book", ImageURL: "https://example.com/image.png", } book, err := CreateBook(ctx, req) if err != nil { t.Fatalf("CreateBook() error = %v", err) } if book == nil { t.Fatal("CreateBook() returned nil book") } if book.BookCode == "" { t.Error("CreateBook() did not generate book_code") } if book.Slug == "" { t.Error("CreateBook() did not generate slug") } if book.Slug != "test-book" { t.Errorf("CreateBook() slug = %q, want %q", book.Slug, "test-book") } } func TestGetBookByCode(t *testing.T) { // This test requires a running database // Skip if not available t.Skip("Skipping GetBookByCode test - requires running database") ctx := context.Background() // This test would require: // 1. Database connection initialized // 2. A book already in the database // 3. Valid book_code bookCode := "test-book-code" book, err := GetBookByCode(ctx, bookCode) if err != nil { t.Logf("GetBookByCode() error = %v (expected if book not found)", err) return } if book == nil { t.Error("GetBookByCode() returned nil book") } if book.BookCode != bookCode { t.Errorf("GetBookByCode() book_code = %q, want %q", book.BookCode, bookCode) } }