Change to skip asserting the artifact graph for samples (#7153)
* Change to skip asserting the artifact graph for samples * Fix clippy warning
This commit is contained in:
		@ -26,6 +26,10 @@ struct Test {
 | 
			
		||||
    input_dir: PathBuf,
 | 
			
		||||
    /// Expected snapshot output files are in this directory.
 | 
			
		||||
    output_dir: PathBuf,
 | 
			
		||||
    /// True to skip asserting the artifact graph and only write it. The default
 | 
			
		||||
    /// is false and to assert it.
 | 
			
		||||
    #[cfg_attr(not(feature = "artifact-graph"), expect(dead_code))]
 | 
			
		||||
    skip_assert_artifact_graph: bool,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub(crate) const RENDERED_MODEL_NAME: &str = "rendered_model.png";
 | 
			
		||||
@ -37,6 +41,7 @@ impl Test {
 | 
			
		||||
            entry_point: Path::new("tests").join(name).join("input.kcl"),
 | 
			
		||||
            input_dir: Path::new("tests").join(name),
 | 
			
		||||
            output_dir: Path::new("tests").join(name),
 | 
			
		||||
            skip_assert_artifact_graph: false,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -299,21 +304,28 @@ fn assert_common_snapshots(
 | 
			
		||||
        })
 | 
			
		||||
    }));
 | 
			
		||||
    let result3 = catch_unwind(AssertUnwindSafe(|| {
 | 
			
		||||
        assert_snapshot(test, "Artifact graph flowchart", || {
 | 
			
		||||
            let mut artifact_graph = artifact_graph.clone();
 | 
			
		||||
            // Sort the map by artifact where we can.
 | 
			
		||||
            artifact_graph.sort();
 | 
			
		||||
        // If the user is explicitly writing, we always want to run so that they
 | 
			
		||||
        // can save new expected output.  There's no way to reliably determine
 | 
			
		||||
        // if insta will write, as far as I can tell, so we use our own
 | 
			
		||||
        // environment variable.
 | 
			
		||||
        let is_writing = matches!(std::env::var("ZOO_SIM_UPDATE").as_deref(), Ok("always"));
 | 
			
		||||
        if !test.skip_assert_artifact_graph || is_writing {
 | 
			
		||||
            assert_snapshot(test, "Artifact graph flowchart", || {
 | 
			
		||||
                let mut artifact_graph = artifact_graph.clone();
 | 
			
		||||
                // Sort the map by artifact where we can.
 | 
			
		||||
                artifact_graph.sort();
 | 
			
		||||
 | 
			
		||||
            let flowchart = artifact_graph
 | 
			
		||||
                .to_mermaid_flowchart()
 | 
			
		||||
                .unwrap_or_else(|e| format!("Failed to convert artifact graph to flowchart: {e}"));
 | 
			
		||||
            // Change the snapshot suffix so that it is rendered as a Markdown file
 | 
			
		||||
            // in GitHub.
 | 
			
		||||
            // Ignore the cpu cooler for now because its being a little bitch.
 | 
			
		||||
            if test.name != "cpu-cooler" {
 | 
			
		||||
                insta::assert_binary_snapshot!("artifact_graph_flowchart.md", flowchart.as_bytes().to_owned());
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
                let flowchart = artifact_graph
 | 
			
		||||
                    .to_mermaid_flowchart()
 | 
			
		||||
                    .unwrap_or_else(|e| format!("Failed to convert artifact graph to flowchart: {e}"));
 | 
			
		||||
                // Change the snapshot suffix so that it is rendered as a Markdown file
 | 
			
		||||
                // in GitHub.
 | 
			
		||||
                // Ignore the cpu cooler for now because its being a little bitch.
 | 
			
		||||
                if test.name != "cpu-cooler" {
 | 
			
		||||
                    insta::assert_binary_snapshot!("artifact_graph_flowchart.md", flowchart.as_bytes().to_owned());
 | 
			
		||||
                }
 | 
			
		||||
            })
 | 
			
		||||
        }
 | 
			
		||||
    }));
 | 
			
		||||
 | 
			
		||||
    result1.unwrap();
 | 
			
		||||
 | 
			
		||||
@ -145,6 +145,8 @@ fn test(test_name: &str, entry_point: std::path::PathBuf) -> Test {
 | 
			
		||||
        entry_point: entry_point.clone(),
 | 
			
		||||
        input_dir: parent.to_path_buf(),
 | 
			
		||||
        output_dir: relative_output_dir,
 | 
			
		||||
        // Skip is temporary while we have non-deterministic output.
 | 
			
		||||
        skip_assert_artifact_graph: true,
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user