use rusqlite::Connection;
use sqlite_err_parser::{InterpretedError, deconstruct_error};
#[test]
fn name_len() {
let conn = Connection::open_in_memory().unwrap();
conn
.execute(
"CREATE TABLE agents (
id INTEGER PRIMARY KEY,
name TEXT UNIQUE NOT NULL,
CHECK(length(name)>=4)
)",
()
)
.unwrap();
let Err(err) = conn.execute("INSERT INTO agents (name) VALUES (?)", ["foo"])
else {
panic!("Unexpectedly not Err()");
};
let Some(InterpretedError::Check(chk)) = deconstruct_error(&err) else {
panic!("Not treated as InterpretedError::Check(); {err}");
};
assert_eq!(chk, "length(name)>=4");
}