1context("rstudio_source_markers") 2test_that("it returns markers which match lints", { 3 with_mock(`rstudioapi::callFun` = function(...) return(list(...)), 4 lint1 <- structure( 5 list( 6 Lint(filename = "test_file", 7 line_number = 1, 8 column_number = 2, 9 type = "error", 10 line = "a line", 11 message = "hi") 12 ), 13 class = "lints" 14 ), 15 marker1 <- rstudio_source_markers(lint1), 16 17 expect_equal(marker1$name, "lintr"), 18 expect_equal(marker1$markers[[1]]$type, lint1[[1]]$type), 19 expect_equal(marker1$markers[[1]]$file, lint1[[1]]$filename), 20 expect_equal(marker1$markers[[1]]$line, lint1[[1]]$line_number), 21 expect_equal(marker1$markers[[1]]$column, lint1[[1]]$column_number), 22 expect_equal(marker1$markers[[1]]$message, lint1[[1]]$message), 23 24 lint2 <- structure( 25 list( 26 Lint(filename = "test_file", 27 line_number = 1, 28 column_number = 2, 29 type = "error", 30 line = "a line", 31 message = "hi"), 32 Lint(filename = "test_file2", 33 line_number = 10, 34 column_number = 5, 35 type = "warning", 36 message = "test a message") 37 ), 38 class = "lints" 39 ), 40 41 marker2 <- rstudio_source_markers(lint2), 42 43 expect_equal(marker2$name, "lintr"), 44 expect_equal(marker2$markers[[1]]$type, lint2[[1]]$type), 45 expect_equal(marker2$markers[[1]]$file, lint2[[1]]$filename), 46 expect_equal(marker2$markers[[1]]$line, lint2[[1]]$line_number), 47 expect_equal(marker2$markers[[1]]$column, lint2[[1]]$column_number), 48 expect_equal(marker2$markers[[1]]$message, lint2[[1]]$message), 49 50 expect_equal(marker2$name, "lintr"), 51 expect_equal(marker2$markers[[2]]$type, lint2[[2]]$type), 52 expect_equal(marker2$markers[[2]]$file, lint2[[2]]$filename), 53 expect_equal(marker2$markers[[2]]$line, lint2[[2]]$line_number), 54 expect_equal(marker2$markers[[2]]$column, lint2[[2]]$column_number), 55 expect_equal(marker2$markers[[2]]$message, lint2[[2]]$message) 56 )}) 57 58test_that("it prepends the package path if it exists", { 59 with_mock(`rstudioapi::callFun` = function(...) return(list(...)), 60 lint3 <- structure( 61 list( 62 Lint(filename = "test_file", 63 line_number = 1, 64 column_number = 2, 65 type = "error", 66 line = "a line", 67 message = "hi") 68 ), 69 class = "lints", 70 path = "test" 71 ), 72 marker3 <- rstudio_source_markers(lint3), 73 expect_equal(marker3$name, "lintr"), 74 expect_equal(marker3$basePath, "test"), # nolint 75 expect_equal(marker3$markers[[1]]$type, lint3[[1]]$type), 76 expect_equal(marker3$markers[[1]]$file, file.path("test", lint3[[1]]$filename)), 77 expect_equal(marker3$markers[[1]]$line, lint3[[1]]$line_number), 78 expect_equal(marker3$markers[[1]]$column, lint3[[1]]$column_number), 79 expect_equal(marker3$markers[[1]]$message, lint3[[1]]$message) 80 ) 81}) 82test_that("it returns an empty list of markers if there are no lints", { 83 with_mock(`rstudioapi::callFun` = function(...) return(list(...)), 84 lint4 <- structure( 85 list(), 86 class = "lints" 87 ), 88 marker4 <- rstudio_source_markers(lint4), 89 90 expect_equal(marker4$name, "lintr"), 91 expect_equal(marker4$markers, list()) 92 ) 93}) 94