Skip to content

Commit a39db50

Browse files
authored
Fix cairo-test dep missing warning (#1993)
fixes #1603
1 parent 3fdfe9d commit a39db50

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

extensions/scarb-cairo-test/src/main.rs

+7-2
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,11 @@ fn main() -> Result<()> {
6666
let metadata = MetadataCommand::new().inherit_stderr().exec()?;
6767

6868
check_scarb_version(&metadata);
69-
check_cairo_test_plugin(&metadata);
7069

7170
let matched = args.packages_filter.match_many(&metadata)?;
71+
let matched_ids = matched.iter().map(|p| p.id.clone()).collect::<Vec<_>>();
72+
check_cairo_test_plugin(&metadata, &matched_ids);
73+
7274
let filter = PackagesFilter::generate_for::<Metadata>(matched.iter());
7375
let test_kind = args.test_kind.unwrap_or_default();
7476
let target_names = matched
@@ -214,7 +216,7 @@ fn check_scarb_version(metadata: &Metadata) {
214216
}
215217
}
216218

217-
fn check_cairo_test_plugin(metadata: &Metadata) {
219+
fn check_cairo_test_plugin(metadata: &Metadata, packages: &[PackageId]) {
218220
let app_version = env!("CARGO_PKG_VERSION").to_string();
219221
let warn = || {
220222
println!(
@@ -249,6 +251,9 @@ fn check_cairo_test_plugin(metadata: &Metadata) {
249251
if cu.target.kind != "test" {
250252
continue;
251253
}
254+
if !packages.contains(&cu.package) {
255+
continue;
256+
}
252257
if !cu
253258
.cairo_plugins
254259
.iter()

extensions/scarb-cairo-test/tests/build.rs

+33
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
use assert_fs::prelude::PathChild;
12
use assert_fs::TempDir;
23
use indoc::{formatdoc, indoc};
34
use scarb_test_support::command::Scarb;
45
use scarb_test_support::project_builder::ProjectBuilder;
6+
use scarb_test_support::workspace_builder::WorkspaceBuilder;
57

68
#[test]
79
fn can_test_without_gas() {
@@ -289,6 +291,37 @@ fn warn_if_cairo_test_plugin_missing() {
289291
"#});
290292
}
291293

294+
#[test]
295+
fn do_not_warn_on_non_tested_package() {
296+
let t = TempDir::new().unwrap();
297+
let pkg1 = t.child("first");
298+
ProjectBuilder::start().name("first").build(&pkg1);
299+
let pkg2 = t.child("second");
300+
ProjectBuilder::start()
301+
.name("second")
302+
.dep_cairo_test()
303+
.build(&pkg2);
304+
WorkspaceBuilder::start()
305+
.add_member("first")
306+
.add_member("second")
307+
.build(&t);
308+
Scarb::quick_snapbox()
309+
.arg("cairo-test")
310+
.arg("--package")
311+
.arg("second")
312+
.current_dir(&t)
313+
.assert()
314+
.success()
315+
.stdout_matches(indoc! {r#"
316+
[..]Compiling test(second_unittest) second v1.0.0 ([..]Scarb.toml)
317+
[..]Finished `dev` profile target(s) in [..]
318+
testing second ...
319+
running 0 tests
320+
test result: ok. 0 passed; 0 failed; 0 ignored; 0 filtered out;
321+
322+
"#});
323+
}
324+
292325
#[test]
293326
fn can_choose_test_kind_to_run() {
294327
let t = TempDir::new().unwrap();

0 commit comments

Comments
 (0)