From 36ff335a4d6370f84f4a3b441e80e520c1cf2267 Mon Sep 17 00:00:00 2001 From: Mubelotix Date: Tue, 26 Aug 2025 14:33:43 +0200 Subject: [PATCH] Test for upgrade --- crates/xtask/src/test/mod.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/crates/xtask/src/test/mod.rs b/crates/xtask/src/test/mod.rs index ed618949a..4e141dd2f 100644 --- a/crates/xtask/src/test/mod.rs +++ b/crates/xtask/src/test/mod.rs @@ -1,6 +1,9 @@ use std::{sync::Arc, time::Duration}; -use crate::common::{args::CommonArgs, client::Client, logs::setup_logs, workload::Workload}; +use crate::{ + common::{args::CommonArgs, client::Client, logs::setup_logs, workload::Workload}, + test::workload::CommandOrUpgrade, +}; use anyhow::{bail, Context}; use clap::Parser; @@ -62,11 +65,19 @@ async fn run_inner(args: TestDeriveArgs) -> anyhow::Result<()> { bail!("workload file {} is not a test workload", workload_file.display()); }; + let has_upgrade = + workload.commands.iter().any(|c| matches!(c, CommandOrUpgrade::Upgrade { .. })); + let name = workload.name.clone(); match workload.run(&args, &assets_client, &meili_client, asset_folder).await { - Ok(_) => match args.add_missing_responses || args.update_responses { - true => println!("🛠️ Workload {name} was updated"), - false => println!("✅ Workload {name} passed"), + Ok(_) => { + match args.add_missing_responses || args.update_responses { + true => println!("🛠️ Workload {name} was updated"), + false => println!("✅ Workload {name} passed"), + } + if !has_upgrade { + println!("⚠️ Warning: this workload doesn't contain an upgrade. The whole point of these tests is to test upgrades! Please add one."); + } } Err(error) => { println!("❌ Workload {name} failed: {error}");