Complete source 6 engineering workflows and preserve release validation evidence
This commit is contained in:
@@ -1,5 +1,42 @@
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn walkthrough_uses_packaged_bundle_before_development_and_reports_missing_assets() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let packaged = temp
|
||||
.path()
|
||||
.join("application/examples/release1/project.arcadia");
|
||||
let development = temp.path().join("checkout");
|
||||
let checkout_entry = development.join("examples/release1/project.arcadia");
|
||||
let executable = temp.path().join("application/arcadia-studio.exe");
|
||||
fs::create_dir_all(checkout_entry.parent().unwrap()).unwrap();
|
||||
fs::write(&checkout_entry, "development source").unwrap();
|
||||
assert_eq!(
|
||||
resolve_walkthrough(&executable, Some(&development)).unwrap(),
|
||||
checkout_entry
|
||||
);
|
||||
fs::create_dir_all(packaged.parent().unwrap()).unwrap();
|
||||
fs::write(&packaged, "packaged source").unwrap();
|
||||
assert_eq!(
|
||||
resolve_walkthrough(&executable, Some(&development)).unwrap(),
|
||||
packaged
|
||||
);
|
||||
assert_eq!(resolve_walkthrough(&executable, None).unwrap(), packaged);
|
||||
fs::remove_file(&packaged).unwrap();
|
||||
let error = resolve_walkthrough(&executable, None).unwrap_err();
|
||||
assert!(error.contains("complete examples/release1 folder"));
|
||||
assert!(
|
||||
error
|
||||
.replace('\\', "/")
|
||||
.contains(&packaged.display().to_string().replace('\\', "/")),
|
||||
"{error}"
|
||||
);
|
||||
assert_eq!(
|
||||
fs::read_to_string(checkout_entry).unwrap(),
|
||||
"development source"
|
||||
);
|
||||
}
|
||||
|
||||
fn model(directory: &Path, name: &str) -> PathBuf {
|
||||
let path = directory.join(name);
|
||||
fs::write(&path, b"model contents must remain untouched").unwrap();
|
||||
|
||||
Reference in New Issue
Block a user