Skip to content

Commit

Permalink
Merge pull request #1091 from rainlanguage/2024-12-18-dotrain-yaml-sc…
Browse files Browse the repository at this point in the history
…enario

Implementing scenarios in DotrainYaml
  • Loading branch information
hardyjosh authored Jan 2, 2025
2 parents 9fabfe0 + 8224828 commit c8eed77
Show file tree
Hide file tree
Showing 15 changed files with 371 additions and 35 deletions.
9 changes: 6 additions & 3 deletions crates/common/src/add_order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,8 @@ price: 2e18;
};
let deployer_arc = Arc::new(deployer);
let scenario = Scenario {
name: "test-scenario".to_string(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "test-scenario".to_string(),
bindings: HashMap::new(),
runs: None,
blocks: None,
Expand Down Expand Up @@ -554,7 +555,8 @@ _ _: 0 0;
};
let deployer_arc = Arc::new(deployer);
let scenario = Scenario {
name: "test-scenario".to_string(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "test-scenario".to_string(),
bindings: HashMap::new(),
runs: None,
blocks: None,
Expand Down Expand Up @@ -696,7 +698,8 @@ _ _: 0 0;
};
let deployer_arc = Arc::new(deployer);
let scenario = Scenario {
name: "test-scenario".to_string(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "test-scenario".to_string(),
bindings: HashMap::new(),
runs: None,
blocks: None,
Expand Down
4 changes: 2 additions & 2 deletions crates/common/src/dotrain_order/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ impl DotrainOrder {
// find and insert the deployment scenario
// make sure to get the root scenario key
let scenario_ref = &deployment_ref.scenario;
let scenario_key = scenario_ref.name.split('.').nth(0).unwrap();
let scenario_key = scenario_ref.key.split('.').nth(0).unwrap();
new_config_source.scenarios.insert(
scenario_key.to_string(),
config_source
Expand Down Expand Up @@ -385,7 +385,7 @@ impl DotrainOrder {
// find and insert charts that reference the scenario or if they have
// same scenario network name as any previously added network
for (chart_key, chart) in &self.config.charts {
if chart.scenario.name.split('.').nth(0).unwrap() == scenario_key
if chart.scenario.key.split('.').nth(0).unwrap() == scenario_key
|| all_network_keys.contains(&chart.scenario.deployer.network.key.as_str())
{
new_config_source.charts.insert(
Expand Down
4 changes: 2 additions & 2 deletions crates/common/src/fuzz/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ impl FuzzRunner {
}

Ok(FuzzResult {
scenario: scenario.name.clone(),
scenario: scenario.key.clone(),
runs: runs.into(),
})
}
Expand All @@ -250,7 +250,7 @@ impl FuzzRunner {
let mut scenarios_data: HashMap<String, FuzzResultFlat> = HashMap::new();

for (_, chart) in charts.clone() {
let scenario_name = chart.scenario.name.clone();
let scenario_name = chart.scenario.key.clone();
let mut runner = self.clone();
scenarios_data.entry(scenario_name.clone()).or_insert(
runner
Expand Down
2 changes: 1 addition & 1 deletion crates/js_api/src/gui/order_operations.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ impl DotrainOrderGui {

fn update_config_source_bindings(&mut self) -> Result<(), GuiError> {
self.dotrain_order.update_config_source_bindings(
&self.deployment.deployment.scenario.name,
&self.deployment.deployment.scenario.key,
self.field_values
.iter()
.map(|(k, _)| Ok((k.clone(), self.get_field_value(k.clone())?.value.clone())))
Expand Down
7 changes: 5 additions & 2 deletions crates/settings/src/chart.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,20 @@ impl ChartConfigSource {

#[cfg(test)]
mod tests {
use strict_yaml_rust::StrictYaml;

use crate::test::mock_plot;

use self::test::mock_deployer;

use super::*;
use std::collections::HashMap;
use std::sync::Arc;
use std::sync::{Arc, RwLock};

fn create_scenario(name: &str, runs: Option<u64>) -> (String, Arc<Scenario>) {
let scenario = Scenario {
name: name.into(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: name.into(),
bindings: HashMap::from([(String::from("key"), String::from("value"))]), // Example binding
runs,
blocks: None,
Expand Down
6 changes: 4 additions & 2 deletions crates/settings/src/deployment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ mod tests {
let order_name = "order1";
let scenario_name = "scenario1";
let scenario = Scenario {
name: "scenario1".into(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "scenario1".into(),
bindings: HashMap::new(),
deployer: mock_deployer(),
runs: None,
Expand Down Expand Up @@ -104,7 +105,8 @@ mod tests {
let scenario_name = "scenario1";
let other_scenario_name = "scenario2";
let scenario = Scenario {
name: "scenario1".into(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "scenario1".into(),
bindings: HashMap::new(),
deployer: mock_deployer(),
runs: None,
Expand Down
3 changes: 2 additions & 1 deletion crates/settings/src/gui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,8 @@ mod tests {
}],
};
let scenario = Scenario {
name: "scenario1".into(),
document: Arc::new(RwLock::new(StrictYaml::String("".to_string()))),
key: "scenario1".into(),
bindings: HashMap::new(),
deployer: mock_deployer(),
runs: None,
Expand Down
Loading

0 comments on commit c8eed77

Please sign in to comment.