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

Function test_jsonb_pretty_function

src/functions/json_functions.rs:2169–2285  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2167
2168 #[test]
2169 fn test_jsonb_pretty_function() {
2170 let conn = Connection::open_in_memory().unwrap();
2171 register_json_functions(&conn).unwrap();
2172
2173 // Test pretty-printing a simple object
2174 let test_json = r#"{"name":"John","age":30,"active":true}"#;
2175 let result: Option<String> = conn.query_row(
2176 "SELECT jsonb_pretty(?)",
2177 [test_json],
2178 |row| row.get(0)
2179 ).unwrap();
2180
2181 assert!(result.is_some());
2182 let pretty = result.unwrap();
2183 assert!(pretty.contains("{\n"));
2184 assert!(pretty.contains(" \"name\": \"John\""));
2185 assert!(pretty.contains(" \"age\": 30"));
2186 assert!(pretty.contains(" \"active\": true"));
2187 assert!(pretty.contains("\n}"));
2188
2189 // Test pretty-printing nested objects
2190 let nested_json = r#"{"user":{"name":"Alice","email":"alice@example.com"},"items":[1,2,3]}"#;
2191 let result: Option<String> = conn.query_row(
2192 "SELECT jsonb_pretty(?)",
2193 [nested_json],
2194 |row| row.get(0)
2195 ).unwrap();
2196
2197 assert!(result.is_some());
2198 let pretty = result.unwrap();
2199 assert!(pretty.contains(" \"user\": {"));
2200 assert!(pretty.contains(" \"name\": \"Alice\""));
2201 assert!(pretty.contains(" \"email\": \"alice@example.com\""));
2202 assert!(pretty.contains(" \"items\": ["));
2203 assert!(pretty.contains(" 1,"));
2204 assert!(pretty.contains(" 2,"));
2205 assert!(pretty.contains(" 3"));
2206
2207 // Test pretty-printing array
2208 let array_json = r#"[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}]"#;
2209 let result: Option<String> = conn.query_row(
2210 "SELECT jsonb_pretty(?)",
2211 [array_json],
2212 |row| row.get(0)
2213 ).unwrap();
2214
2215 assert!(result.is_some());
2216 let pretty = result.unwrap();
2217 assert!(pretty.contains("[\n"));
2218 assert!(pretty.contains(" {\n"));
2219 assert!(pretty.contains(" \"id\": 1,"));
2220 assert!(pretty.contains(" \"name\": \"Item 1\""));
2221 assert!(pretty.contains(" },"));
2222 assert!(pretty.contains(" \"id\": 2,"));
2223 assert!(pretty.contains(" \"name\": \"Item 2\""));
2224 assert!(pretty.contains("\n]"));
2225
2226 // Test with simple values

Callers

nothing calls this directly

Calls 2

register_json_functionsFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected