#![allow(unused_imports)]
use crate::ast::*;
use crate::parser::parse;
#[test]
fn test_index_basic() {
let q = "index idx_users_email on users email";
let cmd = parse(q).unwrap();
assert_eq!(cmd.action, Action::Index);
let idx = cmd.index_def.expect("index_def should be Some");
assert_eq!(idx.name, "idx_users_email");
assert_eq!(idx.table, "users");
assert_eq!(idx.columns, vec!["email".to_string()]);
assert!(!idx.unique);
}
#[test]
fn test_index_composite() {
let q = "index idx_lookup on orders user_id, created_at";
let cmd = parse(q).unwrap();
assert_eq!(cmd.action, Action::Index);
let idx = cmd.index_def.expect("index_def should be Some");
assert_eq!(idx.name, "idx_lookup");
assert_eq!(idx.table, "orders");
assert_eq!(
idx.columns,
vec!["user_id".to_string(), "created_at".to_string()]
);
}
#[test]
fn test_index_unique() {
let q = "index idx_phone on users phone unique";
let cmd = parse(q).unwrap();
assert_eq!(cmd.action, Action::Index);
let idx = cmd.index_def.expect("index_def should be Some");
assert_eq!(idx.name, "idx_phone");
assert!(idx.unique);
}