Skip to content

Commit

Permalink
add snapshot test for display trait (#837)
Browse files Browse the repository at this point in the history
* add snapshot test for display trait

* regenerate test
  • Loading branch information
arrizalamin authored and max-sixty committed Jul 29, 2022
1 parent 116461c commit 459696d
Show file tree
Hide file tree
Showing 84 changed files with 1,278 additions and 1 deletion.
18 changes: 17 additions & 1 deletion book/tests/snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@
//
use anyhow::{bail, Result};
use globset::Glob;
use insta::{assert_snapshot, glob};
use insta::{assert_display_snapshot, assert_snapshot, glob};
use log::warn;
use prql_compiler::ast::Item;
use prql_compiler::*;
use pulldown_cmark::{CodeBlockKind, Event, Parser, Tag};
use std::fs;
Expand All @@ -38,6 +39,7 @@ fn run_examples() -> Result<()> {
#[cfg(not(target_family = "windows"))]
write_reference_prql()?;
run_reference_prql()?;
run_display_reference_prql()?;

Ok(())
}
Expand Down Expand Up @@ -131,3 +133,17 @@ fn run_reference_prql() -> Result<()> {
});
Ok(())
}

/// Snapshot the display trait output of each example.
fn run_display_reference_prql() -> Result<()> {
glob!("prql/**/*.prql", |path| {
let prql = fs::read_to_string(path).unwrap();

if prql.contains("skip_test") {
return;
}

assert_display_snapshot!(Item::Query(parse(&prql).unwrap()));
});
Ok(())
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/transforms/aggregate-0.prql
---
prql dialect:generic

from `employees`
aggregate [
average `salary`,
ct = `count`,
]


Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/transforms/aggregate-1.prql
---
prql dialect:generic

from `employees`
group [
`title`,
`country`,
] (
aggregate [
average `salary`,
ct = `count`,
]
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/coalesce-0.prql
---
prql dialect:generic

from `orders`
derive (
coalesce `amount` 0
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/examples/cte-0.prql
---
prql dialect:generic

table newest_employees = (
from `employees`
sort `tenure`
take 50
)



table average_salaries = (
from `salaries`
group `country` (
aggregate average_country_salary = (average `salary`)
)
)



from `newest_employees`
join `average_salaries` [`country`]
select [
`name`,
`salary`,
`average_country_salary`,
]


Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/dates_and_times-0.prql
---
prql dialect:generic

from `employees`
derive age_at_year_end = @2022-12-31 - `dob`


Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/dates_and_times-1.prql
---
prql dialect:generic

from `orders`
derive should_have_shipped_today = `order_time` < @08:30


Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/dates_and_times-2.prql
---
prql dialect:generic

derive first_prql_commit = @2020-01-01T13:19:55-0800


Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/dates_and_times-3.prql
---
prql dialect:generic

from `projects`
derive first_check_in = `start` + 10days


Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/transforms/derive-0.prql
---
prql dialect:generic

from `employees`
derive gross_salary = `salary` + `payroll_tax`


Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/transforms/derive-1.prql
---
prql dialect:generic

from `employees`
derive [
gross_salary = `salary` + `payroll_tax`,
gross_cost = `gross_salary` + `benefits_cost`,
]


Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/transforms/derive-2.prql
---
prql dialect:generic

derive x = 5


Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/queries/dialect_and_version-0.prql
---
prql dialect:postgres

from `employees`
sort `age`
take 10


Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/queries/dialect_and_version-1.prql
---
prql dialect:mssql

from `employees`
sort `age`
take 10


Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/queries/dialect_and_version-2.prql
---
prql dialect:generic version:1

from `employees`


Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/distinct-0.prql
---
prql dialect:generic

from `employees`
select `department`
group `department` (
take 1
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/distinct-1.prql
---
prql dialect:generic

from `employees`
select `department`
group `department` (
take 1
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/language-features/distinct-2.prql
---
prql dialect:generic

from `employees`
group `department` (
sort `age`
take 1
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/examples/employees-0.prql
---
prql dialect:generic

from `salaries`
group [`emp_no`] (
aggregate [emp_salary = (average `salary`)]
)
join t = `titles` [`emp_no`]
join `dept_emp` side:`left` [`emp_no`]
group [
`dept_emp.dept_no`,
`t.title`,
] (
aggregate [avg_salary = (average `emp_salary`)]
)
join `departments` [`dept_no`]
select [
`dept_name`,
`title`,
`avg_salary`,
]


Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/examples/employees-1.prql
---
prql dialect:generic

from `employees`
join `salaries` [`emp_no`]
group [
`emp_no`,
`gender`,
] (
aggregate [emp_salary = (average `salary`)]
)
join de = `dept_emp` [`emp_no`] side:`left`
group [
`de.dept_no`,
`gender`,
] (
aggregate [
salary_avg = (average `emp_salary`),
salary_sd = (stddev `emp_salary`),
]
)
join `departments` [`dept_no`]
select [
`dept_name`,
`gender`,
`salary_avg`,
`salary_sd`,
]


Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
source: book/tests/snapshot.rs
expression: "Item::Query(parse(&prql).unwrap())"
input_file: book/tests/prql/examples/employees-2.prql
---
prql dialect:generic

from `employees`
join `salaries` [`emp_no`]
group [
`emp_no`,
`gender`,
] (
aggregate [emp_salary = (average `salary`)]
)
join de = `dept_emp` [`emp_no`]
join dm = `dept_manager` [`dm.dept_no` == `de.dept_no` and s"(de.from_date, de.to_date) OVERLAPS (dm.from_date, dm.to_date)"]
group [
`dm.emp_no`,
`gender`,
] (
aggregate [
salary_avg = (average `emp_salary`),
salary_sd = (stddev `emp_salary`),
]
)
derive mng_no = `dm.emp_no`
join managers = `employees` [`emp_no`]
derive mng_name = s"managers.first_name || ' ' || managers.last_name"
select [
`mng_name`,
`managers.gender`,
`salary_avg`,
`salary_sd`,
]


Loading

0 comments on commit 459696d

Please sign in to comment.