test_that("is_first_argument returns TRUE if the first argument, false otherwise", { env <- new.env() env$linebuffer <- "" expect_false(is_first_argument(env), FALSE) env$linebuffer <- "fun(" expect_true(is_first_argument(env)) env$linebuffer <- "fun(foo" expect_true(is_first_argument(env)) env$linebuffer <- 'fun("foo' expect_true(is_first_argument(env)) env$linebuffer <- "fun(foo=" expect_false(is_first_argument(env)) env$linebuffer <- "fun(foo = " expect_false(is_first_argument(env)) env$linebuffer <- 'fun(foo = "bar"' expect_false(is_first_argument(env)) env$linebuffer <- "fun(bar," expect_false(is_first_argument(env)) }) test_that("current_function returns the current function, `\"\"` otherwise", { env <- new.env() env$linebuffer <- "" expect_equal(current_function(env), "") env$linebuffer <- "fun(" expect_equal(current_function(env), "fun") env$linebuffer <- "fun(foo = " expect_equal(current_function(env), "fun") env$linebuffer <- 'fun(foo=T, bar = "xyz/' expect_equal(current_function(env), "fun") env$linebuffer <- 'fun(foo = bar == "xyz/' expect_equal(current_function(env), "fun") env$linebuffer <- 'foo = "bar", baz = "qux' expect_equal(current_function(env), "") env$linebuffer <- 'foo = bar == "xyz/' expect_equal(current_function(env), "") env$linebuffer <- 'foo(bar(baz = "xyz/' expect_equal(current_function(env), "bar") env$linebuffer <- 'foo(); bar(baz = "xyz/' expect_equal(current_function(env), "bar") })