Skip to content

Commit 4e9dc81

Browse files
committed
add test helper
1 parent 3849cf7 commit 4e9dc81

File tree

2 files changed

+33
-20
lines changed

2 files changed

+33
-20
lines changed

crates/pg_statement_splitter/src/lib.rs

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,35 +20,49 @@ mod tests {
2020

2121
use super::*;
2222

23+
struct Tester {
24+
input: String,
25+
parse: Parse,
26+
}
27+
28+
impl From<&str> for Tester {
29+
fn from(input: &str) -> Self {
30+
Tester {
31+
parse: split(input),
32+
input: input.to_string(),
33+
}
34+
}
35+
}
36+
37+
impl Tester {
38+
fn expect_statements(&self, expected: Vec<&str>) {
39+
assert_eq!(self.parse.ranges.len(), expected.len());
40+
41+
for (range, expected) in self.parse.ranges.iter().zip(expected.iter()) {
42+
assert_eq!(*expected, self.input[*range].to_string());
43+
}
44+
}
45+
}
46+
2347
#[test]
2448
#[timeout(1000)]
2549
fn basic() {
26-
let input = "select 1 from contact; select 1;";
27-
28-
let res = split(input);
29-
assert_eq!(res.ranges.len(), 2);
30-
assert_eq!("select 1 from contact;", input[res.ranges[0]].to_string());
31-
assert_eq!("select 1;", input[res.ranges[1]].to_string());
50+
Tester::from("select 1 from contact; select 1;")
51+
.expect_statements(vec!["select 1 from contact;", "select 1;"]);
3252
}
3353

3454
#[test]
3555
fn no_semicolons() {
36-
let input = "select 1 from contact\nselect 1";
37-
38-
let res = split(input);
39-
assert_eq!(res.ranges.len(), 2);
40-
assert_eq!("select 1 from contact", input[res.ranges[0]].to_string());
41-
assert_eq!("select 1", input[res.ranges[1]].to_string());
56+
Tester::from("select 1 from contact\nselect 1")
57+
.expect_statements(vec!["select 1 from contact", "select 1"]);
4258
}
4359

4460
#[test]
4561
fn double_newlines() {
46-
let input = "select 1 from contact\n\nselect 1\n\nselect 3";
47-
48-
let res = split(input);
49-
assert_eq!(res.ranges.len(), 3);
50-
assert_eq!("select 1 from contact", input[res.ranges[0]].to_string());
51-
assert_eq!("select 1", input[res.ranges[1]].to_string());
52-
assert_eq!("select 3", input[res.ranges[2]].to_string());
62+
Tester::from("select 1 from contact\n\nselect 1\n\nselect 3").expect_statements(vec![
63+
"select 1 from contact",
64+
"select 1",
65+
"select 3",
66+
]);
5367
}
5468
}

crates/pg_statement_splitter/src/parser.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ impl Parser {
8484
.ranges
8585
.iter()
8686
.map(|(start, end)| {
87-
println!("{} {}", start, end);
8887
let from = self.tokens.get(*start);
8988
let to = self.tokens.get(*end).unwrap_or(&self.eof_token);
9089

0 commit comments

Comments
 (0)