Skip to content

Commit

Permalink
feat(tests): e2e supergraph fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronArinder committed Aug 2, 2024
1 parent f1d5abd commit 4414951
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
49 changes: 49 additions & 0 deletions tests/e2e/supergraph/fetch.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
use std::fs::read_to_string;
use std::process::Command;

use assert_cmd::prelude::CommandCargoExt;
use httpmock::Regex;
use rstest::rstest;
use tempfile::Builder;
use tracing::error;
use tracing_test::traced_test;

use crate::e2e::remote_supergraph_graphref;

#[rstest]
#[ignore]
#[tokio::test(flavor = "multi_thread")]
#[traced_test]
async fn e2e_test_rover_supergraph_fetch(remote_supergraph_graphref: String) {
// GIVEN
// - supergraph fetch with a file output
let out_file = Builder::new()
.suffix(".graphql")
.tempfile()
.expect("Could not create output file");

// WHEN
// - invoked
let mut cmd = Command::cargo_bin("rover").expect("Could not find necessary binary");
cmd.args([
"supergraph",
"fetch",
"--output",
out_file.path().to_str().unwrap(),
&remote_supergraph_graphref,
]);

// THEN
// - successfull command; no panics, stderr messages
// - the Query type exists, meaning that a schema was properly fetched
let output = cmd.output().expect("Could not run command");
if !output.status.success() {
error!("{}", String::from_utf8(output.stderr).unwrap());
panic!("Command did not complete successfully");
}
let fetched_schema = read_to_string(out_file.path()).expect("Could not read output file");
let re = Regex::new("query: Query").unwrap();
let query_type_found = re.is_match(&fetched_schema);

assert!(query_type_found);
}
1 change: 1 addition & 0 deletions tests/e2e/supergraph/mod.rs
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
mod compose;
mod fetch;

0 comments on commit 4414951

Please sign in to comment.