()
| 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 |
nothing calls this directly
no test coverage detected