diff --git a/tests/e2e/subgraph/lint.rs b/tests/e2e/subgraph/lint.rs new file mode 100644 index 0000000000..da71142f83 --- /dev/null +++ b/tests/e2e/subgraph/lint.rs @@ -0,0 +1,44 @@ +use std::path::PathBuf; +use std::process::Command; + +use assert_cmd::prelude::CommandCargoExt; +use rstest::rstest; +use speculoos::assert_that; +use tracing::error; +use tracing_test::traced_test; + +use crate::e2e::{remote_supergraph_graphref, test_artifacts_directory}; + +#[rstest] +#[ignore] +#[tokio::test(flavor = "multi_thread")] +#[traced_test] +async fn e2e_test_rover_subgraph_lint( + remote_supergraph_graphref: String, + test_artifacts_directory: PathBuf, +) { + let schema_file = test_artifacts_directory.join("perfSubgraph00.graphql"); + let schema_file = schema_file + .to_str() + .expect("failed to get path to perfSubgraph00.graphql file"); + + let mut cmd = Command::cargo_bin("rover").expect("Could not find necessary binary"); + cmd.args([ + "subgraph", + "lint", + "--name", + "perf-subgraph-00", + "--schema", + schema_file, + &remote_supergraph_graphref, + ]); + let output = cmd.output().expect("Could not run command"); + println!("output: {output:?}"); + + if !output.status.success() { + error!("{}", String::from_utf8(output.stderr).unwrap()); + panic!("Command did not complete successfully"); + } + + assert_that(&output.stderr.len()).is_equal_to(0); +} diff --git a/tests/e2e/subgraph/mod.rs b/tests/e2e/subgraph/mod.rs index 7fbbe48df7..8f7f315cb5 100644 --- a/tests/e2e/subgraph/mod.rs +++ b/tests/e2e/subgraph/mod.rs @@ -1,2 +1,3 @@ mod fetch; mod introspect; +mod lint;