graphile_worker_database 0.1.5

Database driver abstraction for graphile_worker
Documentation
use super::escape_identifier;
use super::keywords::KEYWORDS_REQUIRING_QUOTES;

#[test]
fn escape_identifier_matches_postgres_quote_identifier_cases() {
    let cases = [
        ("graphile_worker", "graphile_worker"),
        ("foo_bar1", "foo_bar1"),
        ("schema", "schema"),
        ("", "\"\""),
        ("Foo", "\"Foo\""),
        ("has-dash", "\"has-dash\""),
        ("123abc", "\"123abc\""),
        ("with\"quote", "\"with\"\"quote\""),
        ("select", "\"select\""),
        ("between", "\"between\""),
        ("éclair", "\"éclair\""),
    ];

    for (identifier, expected) in cases {
        assert_eq!(escape_identifier(identifier), expected);
    }
}

#[test]
fn keywords_requiring_quotes_are_sorted() {
    assert!(KEYWORDS_REQUIRING_QUOTES
        .windows(2)
        .all(|window| window[0] < window[1]));
}