Skip to content

Commit

Permalink
put integration tests behind feature flag
Browse files Browse the repository at this point in the history
  • Loading branch information
jaemk committed Mar 1, 2018
1 parent 4189eb6 commit ae03d1a
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 60 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ sqlite = ["migrant_lib/d-sqlite"]
postgres = ["migrant_lib/d-postgres"]
mysql = ["migrant_lib/d-mysql"]
update = ["self_update"]
integration_tests = []

4 changes: 2 additions & 2 deletions ci/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ main() {
#cross test --target $TARGET
#cross test --target $TARGET --release
#cross test --target $TARGET --release --features 'sqlite postgres mysql update'
cargo test
cross build --target $TARGET --release --features 'sqlite postgres mysql update'
cargo test --features integration_tests
cross test --target $TARGET --release --features 'sqlite postgres mysql update'
}

# we don't run the "test phase" when doing deploys
Expand Down
118 changes: 60 additions & 58 deletions tests/migrant.rs
Original file line number Diff line number Diff line change
@@ -1,70 +1,72 @@
extern crate assert_cli;

use assert_cli::Assert;
#[cfg(feature="integration_tests")]
mod tests {
use assert_cli::Assert;

#[test]
fn kitchen_sink() {
// make sure we're setup and back to no applied migrations
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["setup"])
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.execute().is_ok();

#[test]
fn kitchen_sink() {
// make sure we're setup and back to no applied migrations
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["setup"])
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.execute().is_ok();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.fails()
.stderr().contains("MigrationComplete: No un-applied `Down` migrations found")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.fails()
.stderr().contains("MigrationComplete: No un-applied `Down` migrations found")
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["list"])
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20170812145327_initial")
.stdout().contains("[ ] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["list"])
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20170812145327_initial")
.stdout().contains("[ ] 20171126194042_second")
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-a"])
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-a"])
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["list"])
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["list"])
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["redo"])
.stdout().contains("Applying[Down]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20171126194042_second")
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["redo"])
.stdout().contains("Applying[Down]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20171126194042_second")
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["redo", "--all"])
.stdout().contains("Applying[Down]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20170812145327_initial")
.stdout().contains("[ ] 20171126194042_second")
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["redo", "--all"])
.stdout().contains("Applying[Down]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[ ] 20170812145327_initial")
.stdout().contains("[ ] 20171126194042_second")
.stdout().contains("Applying[Up]:")
.stdout().contains("Current Migration Status:")
.stdout().contains("[✓] 20170812145327_initial")
.stdout().contains("[✓] 20171126194042_second")
.unwrap();

Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.execute().is_ok();
Assert::command(&["cargo", "run", "--features", "sqlite", "--"])
.with_args(&["apply", "-ad"])
.execute().is_ok();
}
}

0 comments on commit ae03d1a

Please sign in to comment.