fixed tmdb bug with searchmovies and added tests
This commit is contained in:
94
tmdb/api_test.go
Normal file
94
tmdb/api_test.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package tmdb
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNewAPIConnection_Success(t *testing.T) {
|
||||
// Skip if no API token is provided
|
||||
token := os.Getenv("TMDB_TOKEN")
|
||||
if token == "" {
|
||||
t.Skip("Skipping integration test: TMDB_TOKEN not set")
|
||||
}
|
||||
|
||||
api, err := NewAPIConnection()
|
||||
if err != nil {
|
||||
t.Fatalf("NewAPIConnection() failed: %v", err)
|
||||
}
|
||||
|
||||
if api == nil {
|
||||
t.Fatal("NewAPIConnection() returned nil API")
|
||||
}
|
||||
|
||||
if api.token == "" {
|
||||
t.Error("API token should not be empty")
|
||||
}
|
||||
|
||||
if api.Config == nil {
|
||||
t.Error("API config should be loaded")
|
||||
}
|
||||
|
||||
t.Log("API connection created successfully")
|
||||
}
|
||||
|
||||
func TestNewAPIConnection_NoToken(t *testing.T) {
|
||||
// Temporarily unset the token
|
||||
originalToken := os.Getenv("TMDB_TOKEN")
|
||||
os.Unsetenv("TMDB_TOKEN")
|
||||
defer func() {
|
||||
if originalToken != "" {
|
||||
os.Setenv("TMDB_TOKEN", originalToken)
|
||||
}
|
||||
}()
|
||||
|
||||
api, err := NewAPIConnection()
|
||||
if err == nil {
|
||||
t.Error("NewAPIConnection() should fail without token")
|
||||
}
|
||||
|
||||
if api != nil {
|
||||
t.Error("NewAPIConnection() should return nil API on error")
|
||||
}
|
||||
|
||||
if err.Error() != "No TMDB API Token provided" {
|
||||
t.Errorf("expected 'No TMDB API Token provided' error, got: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPI_Struct(t *testing.T) {
|
||||
config := &Config{
|
||||
Image: Image{
|
||||
SecureBaseURL: "https://image.tmdb.org/t/p/",
|
||||
},
|
||||
}
|
||||
|
||||
api := &API{
|
||||
Config: config,
|
||||
token: "test-token",
|
||||
}
|
||||
|
||||
// Verify struct fields are accessible
|
||||
if api.token != "test-token" {
|
||||
t.Error("API token field not accessible")
|
||||
}
|
||||
|
||||
if api.Config == nil {
|
||||
t.Error("API config field should not be nil")
|
||||
}
|
||||
|
||||
if api.Config.Image.SecureBaseURL != "https://image.tmdb.org/t/p/" {
|
||||
t.Error("API config not properly set")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPI_TokenHandling(t *testing.T) {
|
||||
// Test that token is properly stored and accessible
|
||||
api := &API{
|
||||
token: "test-token-123",
|
||||
}
|
||||
|
||||
if api.token != "test-token-123" {
|
||||
t.Error("Token not properly stored in API struct")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user