MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestDetectAndReadInput

Function TestDetectAndReadInput

cmd/gosqlx/cmd/integration_test.go:25–118  ·  view source on GitHub ↗

TestInputUtils tests the new robust input detection functionality

(t *testing.T)

Source from the content-addressed store, hash-verified

23
24// TestInputUtils tests the new robust input detection functionality
25func TestDetectAndReadInput(t *testing.T) {
26 // Create temporary directory for test files
27 tmpDir := t.TempDir()
28
29 // Test 1: Direct SQL input
30 t.Run("DirectSQL", func(t *testing.T) {
31 result, err := DetectAndReadInput("SELECT * FROM users")
32 if err != nil {
33 t.Fatalf("Expected success for direct SQL, got error: %v", err)
34 }
35 if result.Type != InputTypeSQL {
36 t.Errorf("Expected InputTypeSQL, got %v", result.Type)
37 }
38 if string(result.Content) != "SELECT * FROM users" {
39 t.Errorf("Expected SQL content, got: %s", string(result.Content))
40 }
41 })
42
43 // Test 2: Valid SQL file
44 t.Run("ValidSQLFile", func(t *testing.T) {
45 testFile := filepath.Join(tmpDir, "test.sql")
46 content := "SELECT id, name FROM users WHERE active = true;"
47 err := os.WriteFile(testFile, []byte(content), 0644)
48 if err != nil {
49 t.Fatalf("Failed to create test file: %v", err)
50 }
51
52 result, err := DetectAndReadInput(testFile)
53 if err != nil {
54 t.Fatalf("Expected success for SQL file, got error: %v", err)
55 }
56 if result.Type != InputTypeFile {
57 t.Errorf("Expected InputTypeFile, got %v", result.Type)
58 }
59 if string(result.Content) != content {
60 t.Errorf("Expected file content, got: %s", string(result.Content))
61 }
62 })
63
64 // Test 3: Directory input (should fail)
65 t.Run("DirectoryInput", func(t *testing.T) {
66 _, err := DetectAndReadInput(tmpDir)
67 if err == nil {
68 t.Error("Expected error for directory input, got success")
69 }
70 // Accept either "directory" or "not a regular file" error messages
71 if !strings.Contains(err.Error(), "directory") && !strings.Contains(err.Error(), "not a regular file") {
72 t.Errorf("Expected directory or regular file error message, got: %v", err)
73 }
74 })
75
76 // Test 4: Invalid file extension
77 t.Run("InvalidFileExtension", func(t *testing.T) {
78 testFile := filepath.Join(tmpDir, "test.exe")
79 err := os.WriteFile(testFile, []byte("SELECT 1"), 0644)
80 if err != nil {
81 t.Fatalf("Failed to create test file: %v", err)
82 }

Callers

nothing calls this directly

Calls 5

RunMethod · 0.80
DetectAndReadInputFunction · 0.70
FatalfMethod · 0.65
ErrorfMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected