tests/testthat/test-Query.R

test_that("Query client initialization works", {
  expect_is(Query, "R6ClassGenerator")

	aa <- Query$new()

  expect_is(aa, "Query")
  expect_is(aa, "R6")
  expect_is(aa$.__enclos_env__, "environment")
  expect_is(aa$add_fragment, "function")
  expect_is(aa$queries, "list")
  expect_equal(length(aa$queries), 0)
})

test_that("Query query construction works", {
  aa <- Query$new()

	aa$query('myquery', '{ field(arg:"") }')

  expect_is(aa, "Query")
  expect_equal(length(aa$queries), 1)
  expect_named(aa$queries, "myquery")
  expect_named(aa$queries$myquery, c('query', 'fragment'))
  expect_identical(aa$queries$myquery$query, '{ field(arg:"") }')
})

test_that("Query class fails well", {
  expect_error(Query$new(a = 5), "there is no initialize method")

  rr <- Query$new()
  expect_error(rr$add_fragment(), "argument \"query_name\" is missing")
  expect_error(rr$query('adsfafafd'), "argument \"x\" is missing")
})

test_that("Query checks queries - and fails as expected", {
  qry <- Query$new()  
  expect_error(qry$query(x = 'adsfafafd'), "syntax error")
  expect_error(qry$query('x', 'query { }'), "1.9: syntax error, unexpected }")
  expect_error(qry$query('x', 'query myQuery { \a }'),
    "1.17: unrecognized character")
  expect_error(qry$query('x', '{ field(arg:\"\b\") }'),
    "1.13-14: unrecognized character")
})
ropensci/ghql documentation built on Jan. 14, 2023, 4:55 a.m.