manifest.rs (1683B)
1 use serde_json::json; 2 3 use crate::sdk_generation::package_matrix::PackageSpec; 4 5 pub fn manifest_relative_path(spec: PackageSpec) -> String { 6 format!("contracts/provenance/typescript/{}.json", spec.key) 7 } 8 9 pub fn package_manifest(spec: PackageSpec) -> serde_json::Value { 10 json!({ 11 "package": spec.package_name, 12 "crate": spec.crate_name, 13 "version": "0.1.0", 14 "license": "MIT OR Apache-2.0", 15 "repository": "https://github.com/radrootslabs/sdk", 16 "repository_directory": spec.package_dir, 17 "generator": "radroots_lib_xtask", 18 "generated": false 19 }) 20 } 21 22 #[cfg(test)] 23 mod tests { 24 use crate::sdk_generation::{ 25 manifest::{manifest_relative_path, package_manifest}, 26 package_matrix::package_specs, 27 }; 28 29 #[test] 30 fn manifest_path_is_outside_package_source() { 31 assert_eq!( 32 manifest_relative_path(package_specs()[0]), 33 "contracts/provenance/typescript/core.json" 34 ); 35 } 36 37 #[test] 38 fn manifest_records_package_and_crate() { 39 let manifest = package_manifest(package_specs()[0]); 40 assert_eq!(manifest["package"], package_specs()[0].package_name); 41 assert_eq!(manifest["crate"], package_specs()[0].crate_name); 42 assert_eq!(manifest["version"], "0.1.0"); 43 assert_eq!(manifest["license"], "MIT OR Apache-2.0"); 44 assert_eq!(manifest["generator"], "radroots_lib_xtask"); 45 assert_eq!( 46 manifest["repository"], 47 "https://github.com/radrootslabs/sdk" 48 ); 49 assert_eq!( 50 manifest["repository_directory"], 51 package_specs()[0].package_dir 52 ); 53 } 54 }