From cc6df92212d378873cd2999b2688a1a34c10d2b7 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sat, 18 Nov 2023 00:17:53 +0000 Subject: [PATCH] metadata+vectorization --- tests/testthat/test-if_switch_linter.R | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/testthat/test-if_switch_linter.R b/tests/testthat/test-if_switch_linter.R index 9909362b1..d4b70d5a6 100644 --- a/tests/testthat/test-if_switch_linter.R +++ b/tests/testthat/test-if_switch_linter.R @@ -50,5 +50,33 @@ test_that("if_switch_linter handles further nested if/else correctly", { ) }) +test_that("multiple lints have right metadata", { + lint_msg <- rex::rex("Prefer switch() statements over repeated if/else equality tests") + + expect_lint( + trim_some("{ + if (x == 'a') { + do_a() + } else if (x == 'b') { + do_b() + } else if (x == 'c') { + do_c() + } + if (y == 'A') { + do_A() + } else if (y == 'B') { + do_B() + } else if (y == 'C') { + do_C() + } + }"), + list( + list(lint_msg, line_number = 2L), + list(lint_msg, line_number = 9L) + ), + if_switch_linter() + ) +}) + # TODO(michaelchirico): be more explicit/deliberate about nested `{}` cases like # if (x == 'a') 1 else { if (x == 'b') 2 else 3 }