MCPcopy Create free account
hub / github.com/erans/pgsqlite / test_catalog_basic_functionality

Function test_catalog_basic_functionality

tests/catalog_basic_test.rs:5–59  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3
4#[tokio::test]
5async fn test_catalog_basic_functionality() {
6 let _ = env_logger::builder().is_test(true).try_init();
7
8 let server = setup_test_server_with_init(|db| {
9 Box::pin(async move {
10 db.execute("CREATE TABLE test_table (id INTEGER PRIMARY KEY, name TEXT)").await?;
11 Ok(())
12 })
13 }).await;
14
15 let client = &server.client;
16
17 // Test 1: Simple 2-column query
18 println!("\n=== Test 1: Simple 2-column query ===");
19 match client.query(
20 "SELECT relname, relkind FROM pg_catalog.pg_class WHERE relkind = 'r'",
21 &[]
22 ).await {
23 Ok(rows) => {
24 println!("✓ Query succeeded: {} rows", rows.len());
25 assert!(!rows.is_empty(), "Should find at least 1 table");
26 for row in &rows {
27 let relname: &str = row.get(0);
28 let relkind: &str = row.get(1);
29 println!(" Table: {relname}, Kind: {relkind}");
30 assert_eq!(relkind, "r", "Should only return tables");
31 }
32 }
33 Err(e) => {
34 eprintln!("✗ Query failed: {e:?}");
35 panic!("Basic catalog query should work!");
36 }
37 }
38
39 // Test 2: SELECT * query
40 println!("\n=== Test 2: SELECT * query ===");
41 match client.query(
42 "SELECT * FROM pg_catalog.pg_class WHERE relkind = 'r' LIMIT 1",
43 &[]
44 ).await {
45 Ok(rows) => {
46 println!("✓ SELECT * succeeded: {} rows", rows.len());
47 if !rows.is_empty() {
48 println!(" Row has {} columns", rows[0].len());
49 assert_eq!(rows[0].len(), 33, "pg_class should have 33 columns");
50 }
51 }
52 Err(e) => {
53 eprintln!("✗ SELECT * failed: {e:?}");
54 panic!("SELECT * should work!");
55 }
56 }
57
58 server.abort();
59}

Callers

nothing calls this directly

Calls 6

abortMethod · 0.80
executeMethod · 0.45
queryMethod · 0.45
getMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected