% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/expect_lint.R
\name{expect_lint}
\alias{expect_lint}
\alias{expect_no_lint}
\title{Lint expectation}
\usage{
expect_lint(
  content,
  checks,
  ...,
  file = NULL,
  language = "en",
  ignore_order = FALSE
)

expect_no_lint(content, ..., file = NULL, language = "en")
}
\arguments{
\item{content}{A character vector for the file content to be linted, each vector element representing a line of
text.}

\item{checks}{Checks to be performed:
\describe{
\item{NULL}{check that no lints are returned.}
\item{single string or regex object}{check that the single lint returned has a matching message.}
\item{named list}{check that the single lint returned has fields that match. Accepted fields are the same as those
taken by \code{\link[=Lint]{Lint()}}.}
\item{list of named lists}{for each of the multiple lints returned, check that it matches the checks in the
corresponding named list (as described in the point above).}
}
Named vectors are also accepted instead of named lists, but this is a compatibility feature that
is not recommended for new code.}

\item{...}{Arguments passed to \code{\link[=lint]{lint()}}, e.g. the linters or cache to use.}

\item{file}{If not \code{NULL}, read content from the specified file rather than from \code{content}.}

\item{language}{Temporarily override Rs \code{LANGUAGE} envvar, controlling localization of base R error messages.
This makes testing them reproducible on all systems irrespective of their native R language setting.}

\item{ignore_order}{Logical, default \code{FALSE}. If \code{TRUE}, the order of the \code{checks} does not matter, e.g.
lints with higher line numbers can come before those with lower line numbers, and the order of linters
affecting the same line is also irrelevant.}
}
\value{
\code{NULL}, invisibly.
}
\description{
These are expectation functions to test specified linters on sample code in the \code{testthat} testing framework.
\itemize{
\item \code{expect_lint} asserts that specified lints are generated.
\item \code{expect_no_lint} asserts that no lints are generated.
}
}
\examples{
# no expected lint
expect_no_lint("a", trailing_blank_lines_linter())

# one expected lint
expect_lint("a\n", "trailing blank", trailing_blank_lines_linter())
expect_lint("a\n", list(message = "trailing blank", line_number = 2), trailing_blank_lines_linter())

# several expected lints
expect_lint("a\n\n", list("trailing blank", "trailing blank"), trailing_blank_lines_linter())
expect_lint(
  "a\n\n",
  list(
    list(message = "trailing blank", line_number = 2),
    list(message = "trailing blank", line_number = 3)
  ),
  trailing_blank_lines_linter()
)
}
