{
  "_id": "6ac89f01de46216d5edd4a92",
  "Package": "shinytest2",
  "Title": "Testing for Shiny Applications",
  "Version": "0.5.1",
  "Authors@R": "c(\nperson(\"Barret\", \"Schloerke\", , \"barret@posit.co\", role = c(\"cre\", \"aut\"),\ncomment = c(ORCID = \"0000-0001-9986-114X\")),\nperson(, \"Posit Software, PBC\", role = c(\"cph\", \"fnd\"),\ncomment = c(ROR = \"03wc8by49\")),\nperson(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"ctb\",\ncomment = \"Original author to rstudio/shinytest\"),\nperson(\"Gábor\", \"Csárdi\", , \"gabor@posit.co\", role = \"ctb\",\ncomment = \"Original author to rstudio/shinytest\"),\nperson(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"ctb\",\ncomment = \"Original author to rstudio/shinytest\"),\nperson(, \"Mango Solutions\", role = c(\"cph\", \"ccp\"),\ncomment = \"Original author to rstudio/shinytest\")\n)",
  "Description": "Automated unit testing of Shiny applications through a\nheadless 'Chromium' browser.",
  "License": "MIT + file LICENSE",
  "URL": "https://rstudio.github.io/shinytest2/,\nhttps://github.com/rstudio/shinytest2",
  "BugReports": "https://github.com/rstudio/shinytest2/issues",
  "VignetteBuilder": "knitr",
  "Config/Needs/check": "rstudio/shiny, bslib",
  "Config/Needs/shinytest2-testing": "decor",
  "Config/Needs/website": "pkgdown, tidyverse/tidytemplate",
  "Config/roxygen2/version": "8.0.0",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE)",
  "Collate": "'R6-helper.R' 'app-driver-chromote.R' 'app-driver-dir.R'\n'app-driver-expect-download.R' 'app-driver-expect-js.R'\n'app-driver-expect-screenshot.R'\n'app-driver-expect-unique-names.R' 'app-driver-expect-values.R'\n'app-driver-get-log.R' 'app-driver-initialize.R'\n'app-driver-log-message.R' 'app-driver-message.R'\n'app-driver-node.R' 'app-driver-set-inputs.R'\n'app-driver-start.R' 'app-driver-stop.R' 'app-driver-timeout.R'\n'app-driver-upload-file.R' 'app-driver-variant.R'\n'app-driver-wait.R' 'app-driver-window.R' 'app-driver.R'\n'chromote-methods.R' 'compare-screenshot-threshold.R' 'cpp11.R'\n'expect-snapshot.R' 'expr-recurse.R' 'httr2.R' 'migrate.R'\n'missing-value.R' 'pkg.R' 'utils.R' 'platform.R'\n'record-test-unique-name.R' 'record-test.R' 'rstudio.R'\n'save-app.R' 'shiny-browser.R' 'shinytest2-logs.R'\n'shinytest2-package.R' 'test-app.R' 'use.R'",
  "Config/pak/sysreqs": "cmake make libuv1-dev libssl-dev",
  "Repository": "https://rstudio.r-universe.dev",
  "Date/Publication": "2026-07-15 18:06:43 UTC",
  "RemoteUrl": "https://github.com/rstudio/shinytest2",
  "RemoteRef": "HEAD",
  "RemoteSha": "3c31e83163c037f62abd81f7fa02a467f3e32880",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-09 07:52:27 UTC",
    "User": "root"
  },
  "Author": "Barret Schloerke [cre, aut] (ORCID:\n<https://orcid.org/0000-0001-9986-114X>),\nPosit Software, PBC [cph, fnd] (ROR: <https://ror.org/03wc8by49>),\nWinston Chang [ctb] (Original author to rstudio/shinytest),\nGábor Csárdi [ctb] (Original author to rstudio/shinytest),\nHadley Wickham [ctb] (Original author to rstudio/shinytest),\nMango Solutions [cph, ccp] (Original author to rstudio/shinytest)",
  "Maintainer": "Barret Schloerke <barret@posit.co>",
  "_user": "rstudio",
  "_type": "src",
  "_file": "shinytest2_0.5.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/f44db9c4e7388ab37f8dc09fae68e6c6945093eeeae9a2ca954607a35db83064",
  "_filesize": 6055870,
  "_sha256": "f44db9c4e7388ab37f8dc09fae68e6c6945093eeeae9a2ca954607a35db83064",
  "_expires": "2027-01-17T07:59:59.000Z",
  "_created": "2026-10-09T07:52:27.000Z",
  "_published": "2026-10-09T08:00:01.443Z",
  "_buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 113725100101,
      "time": 155,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11602074701"
    },
    {
      "job": 113725100072,
      "time": 169,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11602877642"
    },
    {
      "job": 113725100002,
      "time": 153,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11602244418"
    },
    {
      "job": 113725100056,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11602767943"
    },
    {
      "job": 113725100005,
      "time": 131,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11602314023"
    },
    {
      "job": 113725100004,
      "time": 253,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11602444288"
    },
    {
      "job": 113725100041,
      "time": 117,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11602627069"
    },
    {
      "job": 113725100001,
      "time": 403,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11603105403"
    },
    {
      "job": 113723761036,
      "time": 259,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11603010482"
    },
    {
      "job": 113725100090,
      "time": 171,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11602608667"
    },
    {
      "job": 113725100109,
      "time": 353,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11602564223"
    },
    {
      "job": 113725100038,
      "time": 180,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11602394016"
    },
    {
      "job": 113725100082,
      "time": 126,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11602982036"
    },
    {
      "job": 113725100095,
      "time": 359,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11601954044"
    },
    {
      "job": 113725100055,
      "time": 114,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11602658358"
    }
  ],
  "_upstream": "https://github.com/rstudio/shinytest2",
  "_commit": {
    "id": "3c31e83163c037f62abd81f7fa02a467f3e32880",
    "author": "Barret Schloerke <barret@posit.co>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Fix failing CI checks: roxygen2 8.0.0 docs, screenshot robustness, Windows timeouts, httr2 >= 1.0.0 (#450)\n\n* chore: temp change to trigger CI\n\n* `devtools::document()` (GitHub Actions)\n\n* `usethis::use_tidy_description()` (GitHub Actions)\n\n* Restore docs to match main (roxygen2 7.3.3)\n\nThe CI routine bot regenerates man/ with roxygen2 8.0.0, which inlines\nR6 method @examples into man/AppDriver.Rd with malformed brace escaping\n(unexpected macro '\\if'), breaking the pkgdown 'website' check. This\nbranch makes no roxygen source changes, so restore man/ and DESCRIPTION\nto main's roxygen2 7.3.3 output.\n\n* `devtools::document()` (GitHub Actions)\n\n* Fix AppDriver @examples for roxygen2 8.0.0\n\nroxygen2 8.0.0 validates and re-renders R6 method @examples into the\nreference page's \\preformatted{} blocks. Two constructs in the AppDriver\nexamples produced malformed Rd (unbalanced braces / 'unexpected macro'\nwarnings) that broke the pkgdown 'website' check and R CMD check:\n\n- Non-ASCII characters (bullet '•', ellipsis '…') in illustrative log\n  output. Replaced with ASCII '*' and '...'.\n- Unbalanced escaped braces in truncated WebSocket JSON log lines.\n  Balanced each line's \\{ ... \\} escapes.\n\nVerified: tools::parse_Rd() is clean for all man/*.Rd and\npkgdown::build_reference_index() emits 0 warnings.\n\n* `usethis::use_tidy_description()` (GitHub Actions)\n\n* Make #green screenshot tests robust to PNG byte differences\n\ntest-app-image.R's two '#green' screenshot expectations used the default\nthreshold = NULL, which makes expect_screenshot() a byte-level\ncomparison (compare_file_binary). The '#green' box is a solid color\nwhose pixels are identical across platforms, but chromote/Chrome emit\nnon-deterministic PNG bytes (the IDAT zlib stream differs by\nenvironment), so the byte comparison failed on CI for months despite\nscreenshot_max_difference() being 0.\n\nPass threshold = 10 so the comparison uses the pixel convolution path,\nwhich tolerates re-encoding while still catching real visual",
    "time": 1784138803
  },
  "_maintainer": {
    "name": "Barret Schloerke",
    "email": "barret@posit.co",
    "login": "schloerke",
    "bluesky": "@schloerke.bsky.social",
    "linkedin": "in/schloerke",
    "orcid": "0000-0001-9986-114X",
    "description": "",
    "uuid": 93231
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "testthat",
      "version": ">= 3.3.1",
      "role": "Depends"
    },
    {
      "package": "cpp11",
      "role": "LinkingTo"
    },
    {
      "package": "callr",
      "role": "Imports"
    },
    {
      "package": "checkmate",
      "version": ">= 2.0.0",
      "role": "Imports"
    },
    {
      "package": "chromote",
      "version": ">= 0.5.0",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "globals",
      "version": ">= 0.14.0",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "version": ">= 1.0.3",
      "role": "Imports"
    },
    {
      "package": "pingr",
      "role": "Imports"
    },
    {
      "package": "pkgload",
      "role": "Imports"
    },
    {
      "package": "R6",
      "version": ">= 2.4.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "rmarkdown",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "box",
      "role": "Suggests"
    },
    {
      "package": "deSolve",
      "role": "Suggests"
    },
    {
      "package": "diffobj",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "golem",
      "role": "Suggests"
    },
    {
      "package": "httpuv",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "rhino",
      "role": "Suggests"
    },
    {
      "package": "rstudioapi",
      "role": "Suggests"
    },
    {
      "package": "shinytest",
      "version": ">= 1.5.1",
      "role": "Suggests"
    },
    {
      "package": "shinyvalidate",
      "version": ">= 0.1.2",
      "role": "Suggests"
    },
    {
      "package": "shinyWidgets",
      "role": "Suggests"
    },
    {
      "package": "showimage",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "usethis",
      "role": "Suggests"
    },
    {
      "package": "vdiffr",
      "version": ">= 1.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "rstudio",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-46",
      "n": 1
    },
    {
      "week": "2025-47",
      "n": 5
    },
    {
      "week": "2025-48",
      "n": 1
    },
    {
      "week": "2025-49",
      "n": 1
    },
    {
      "week": "2025-52",
      "n": 3
    },
    {
      "week": "2026-02",
      "n": 2
    },
    {
      "week": "2026-06",
      "n": 1
    },
    {
      "week": "2026-07",
      "n": 4
    },
    {
      "week": "2026-09",
      "n": 3
    },
    {
      "week": "2026-15",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.5.0",
      "date": "2026-01-09"
    },
    {
      "name": "v0.5.1",
      "date": "2026-02-25"
    }
  ],
  "_stars": 123,
  "_contributors": [
    {
      "user": "schloerke",
      "count": 163,
      "uuid": 93231
    },
    {
      "user": "cpsievert",
      "count": 8,
      "uuid": 1365941
    },
    {
      "user": "gadenbuie",
      "count": 7,
      "uuid": 5420529
    },
    {
      "user": "russhyde",
      "count": 4,
      "uuid": 7734886
    },
    {
      "user": "shikokuchuo",
      "count": 3,
      "uuid": 53399081
    },
    {
      "user": "copilot",
      "count": 3,
      "uuid": 198982749
    },
    {
      "user": "kierisi",
      "count": 3,
      "uuid": 23085445
    },
    {
      "user": "divadnojnarg",
      "count": 2,
      "uuid": 18291543
    },
    {
      "user": "elnelson575",
      "count": 2,
      "uuid": 16469084
    },
    {
      "user": "olivroy",
      "count": 2,
      "uuid": 52606734
    },
    {
      "user": "daattali",
      "count": 1,
      "uuid": 952340
    },
    {
      "user": "indrajeetpatil",
      "count": 1,
      "uuid": 11330453
    },
    {
      "user": "jeroen",
      "count": 1,
      "uuid": 216319
    },
    {
      "user": "louislenezet",
      "count": 1,
      "uuid": 58640615
    },
    {
      "user": "maxheld83",
      "count": 1,
      "uuid": 5372770
    },
    {
      "user": "mikejohnpage",
      "count": 1,
      "uuid": 38110953
    },
    {
      "user": "askpascal",
      "count": 1,
      "uuid": 4834905
    },
    {
      "user": "riraro",
      "count": 1,
      "uuid": 119937365
    },
    {
      "user": "torockel",
      "count": 1,
      "uuid": 60826877
    },
    {
      "user": "wch",
      "count": 1,
      "uuid": 86978
    },
    {
      "user": "gladkia",
      "count": 1,
      "uuid": 41166437
    }
  ],
  "_userbio": {
    "uuid": 513560,
    "type": "organization",
    "name": "RStudio",
    "followers": 3592
  },
  "_downloads": {
    "count": 29696,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/shinytest2"
  },
  "_devurl": "https://github.com/rstudio/shinytest2",
  "_pkgdown": "https://rstudio.github.io/shinytest2/",
  "_searchresults": 1384,
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/shinytest2.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/rstudio/shinytest2",
  "_realowner": "rstudio",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2022-04-27"
    },
    {
      "version": "0.1.1",
      "date": "2022-09-06"
    },
    {
      "version": "0.2.0",
      "date": "2022-09-26"
    },
    {
      "version": "0.2.1",
      "date": "2023-02-22"
    },
    {
      "version": "0.3.0",
      "date": "2023-08-15"
    },
    {
      "version": "0.3.1",
      "date": "2023-08-26"
    },
    {
      "version": "0.3.2",
      "date": "2024-04-28"
    },
    {
      "version": "0.4.0",
      "date": "2025-04-10"
    },
    {
      "version": "0.4.1",
      "date": "2025-04-11"
    },
    {
      "version": "0.5.0",
      "date": "2026-01-09"
    },
    {
      "version": "0.5.1",
      "date": "2026-02-25"
    }
  ],
  "_exports": [
    "AppDriver",
    "compare_screenshot_threshold",
    "get_input_processors",
    "load_app_env",
    "load_app_support",
    "local_app_support",
    "migrate_from_shinytest",
    "platform_variant",
    "record_test",
    "register_input_processor",
    "screenshot_max_difference",
    "test_app",
    "use_shinytest2",
    "use_shinytest2_test",
    "with_app_support"
  ],
  "_help": [
    {
      "page": "AppDriver",
      "title": "Drive a Shiny application",
      "topics": [
        "AppDriver"
      ]
    },
    {
      "page": "compare_screenshot_threshold",
      "title": "Compare screenshots given threshold value",
      "topics": [
        "compare_screenshot_threshold",
        "screenshot_max_difference"
      ]
    },
    {
      "page": "app_support",
      "title": "Attach the Shiny application's support environment",
      "topics": [
        "load_app_support",
        "local_app_support",
        "with_app_support"
      ]
    },
    {
      "page": "migrate_from_shinytest",
      "title": "Migrate 'shinytest' tests",
      "topics": [
        "migrate_from_shinytest"
      ]
    },
    {
      "page": "platform_variant",
      "title": "Platform specific variant",
      "topics": [
        "platform_variant"
      ]
    },
    {
      "page": "record_test",
      "title": "Launch test event recorder for a Shiny app",
      "topics": [
        "record_test"
      ]
    },
    {
      "page": "test_app",
      "title": "Test Shiny applications with 'testthat'",
      "topics": [
        "test_app"
      ]
    },
    {
      "page": "use_shinytest2",
      "title": "Use 'shinytest2' with your Shiny application",
      "topics": [
        "use_shinytest2",
        "use_shinytest2_test"
      ]
    }
  ],
  "_pkglogo": "https://github.com/rstudio/shinytest2/raw/HEAD/man/figures/logo.svg",
  "_readme": "https://github.com/rstudio/shinytest2/raw/HEAD/README.md",
  "_rundeps": [
    "AsioHeaders",
    "askpass",
    "backports",
    "base64enc",
    "brio",
    "bslib",
    "cachem",
    "callr",
    "checkmate",
    "chromote",
    "cli",
    "codetools",
    "commonmark",
    "cpp11",
    "crayon",
    "curl",
    "desc",
    "diffobj",
    "digest",
    "evaluate",
    "fastmap",
    "fontawesome",
    "fs",
    "globals",
    "glue",
    "highr",
    "htmltools",
    "httpuv",
    "httr2",
    "jquerylib",
    "jsonlite",
    "knitr",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "openssl",
    "otel",
    "pingr",
    "pkgbuild",
    "pkgload",
    "praise",
    "processx",
    "promises",
    "ps",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "rmarkdown",
    "rprojroot",
    "sass",
    "shiny",
    "sourcetools",
    "sys",
    "testthat",
    "tinytex",
    "vctrs",
    "waldo",
    "watcher",
    "websocket",
    "withr",
    "xfun",
    "xtable",
    "yaml",
    "zip"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "use-application-audit.Rmd",
      "filename": "use-application-audit.html",
      "title": "Auditing Shiny apps",
      "author": "David Granjon",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Audit Shiny apps with",
        "Introduction",
        "Load testing with",
        "Launch the background app",
        "Connect Chrome",
        "Replay with shinycannon",
        "Report generation",
        "Automating with GitHub Actions"
      ],
      "created": "2022-09-13 19:40:04",
      "modified": "2026-02-09 19:52:41",
      "commits": 4
    },
    {
      "source": "zzz-faq.Rmd",
      "filename": "zzz-faq.html",
      "title": "Frequently Asked Questions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What does it mean when I run test_app() and it says, \"Server did not update any output values within 3 seconds\"?",
        "Some input values are not set right after calling app$set_inputs(). How do I wait for them?",
        "How can my app detect if it's running in {shinytest2}?",
        "How can I get the objects from files in my the R folder into the testing environment?",
        "Can I modify the input and output values that are recorded in snapshots?",
        "Should I manually shut down my AppDriver?",
        "How can I open the test to see if bookmarks are working?"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2026-02-09 20:24:54",
      "commits": 12
    },
    {
      "source": "shinytest2.Rmd",
      "filename": "shinytest2.html",
      "title": "Getting started with shinytest2",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why test Shiny applications?",
        "How testing works with shinytest2",
        "Getting started",
        "Recording tests",
        "Running tests",
        "Subsequent test runs",
        "Multiple test scripts",
        "Interactive R Markdown documents",
        "Randomness",
        "One .Rmd file per directory",
        "Prerendered Shiny documents",
        "Next"
      ],
      "created": "2022-03-18 16:16:14",
      "modified": "2026-02-25 21:12:17",
      "commits": 9
    },
    {
      "source": "z-migration.Rmd",
      "filename": "z-migration.html",
      "title": "Migrating from shinytest",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Code structure",
        "Methods",
        "ShinyDriver$click()",
        "ShinyDriver$executeScript()",
        "ShinyDriver$executeScriptAsync()",
        "ShinyDriver$getAllValues()",
        "ShinyDriver$getValue()",
        "ShinyDriver$getUrl()",
        "ShinyDriver$setInputs()",
        "ShinyDriver$getWindowSize(), ShinyDriver$setWindowSize()",
        "ShinyDriver$checkUniqueWidgetNames()",
        "Snapshots",
        "ShinyDriver$snapshotInit()",
        "ShinyDriver$snapshot()",
        "ShinyDriver$takeScreenshot()",
        "ShinyDriver$snapshotDownload()",
        "ShinyDriver$stop()",
        "ShinyDriver$uploadFile()",
        "ShinyDriver$waitFor()",
        "ShinyDriver$waitForShiny()",
        "ShinyDriver$waitForValue()",
        "Elements / Widgets",
        "ShinyDriver$findElement(), ShinyDriver$findElements(), ShinyDriver$findWidget()",
        "ShinyDriver$getSource(), ShinyDriver$getTitle()",
        "Testing setup",
        "ShinyDriver$getRelativePathToApp(), ShinyDriver$getTestsDir()",
        "ShinyDriver$getSnapshotDir()",
        "ShinyDriver$expectUpdate()",
        "Debugging",
        "Other removed methods"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2022-04-27 19:29:55",
      "commits": 4
    },
    {
      "source": "using-monkey-testing.Rmd",
      "filename": "using-monkey-testing.html",
      "title": "Monkey testing",
      "author": "David Granjon",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Monkey (headless) testing with",
        "Initialize the driver",
        "Injecting gremlins.js",
        "Easy way",
        "Local way",
        "Unleash the horde",
        "A bit about gremlins.js",
        "Practice",
        "Blind run",
        "Optimized testing"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2026-02-09 19:52:41",
      "commits": 8
    },
    {
      "source": "robust.Rmd",
      "filename": "robust.html",
      "title": "Robust testing",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Expectations",
        "Confirm the expected behavior",
        "Assert as little unnecessary information",
        "Write clear, direct tests",
        "{shinytest2} expectations",
        "input/output names",
        "Shiny values:",
        "Downloads",
        "UI expectations",
        "UI visual expectations",
        "Suggested approaches",
        "Exported values",
        "Snapshots vs values",
        "Example",
        "Cliffs Notes",
        "Retrieving values",
        "Expectation methods"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2026-02-09 19:52:41",
      "commits": 8
    },
    {
      "source": "in-depth.Rmd",
      "filename": "in-depth.html",
      "title": "Testing in depth",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Customizing test scripts",
        "Setting inputs with app$set_inputs() and app$click()",
        "Making expectations",
        "Exported values",
        "Adding delays",
        "Controlling random values",
        "Widgets",
        "Tabs",
        "Uploading files",
        "View the headless browser",
        "Getting input, output, and export values",
        "Waiting for an input (or output) value",
        "Dealing with dynamic data",
        "Using variant to expect different snapshots",
        "Limitations",
        "Inputs without input bindings",
        "Input component(s) provided as variable(s)",
        "Next"
      ],
      "created": "2022-03-18 16:16:14",
      "modified": "2026-02-09 19:52:41",
      "commits": 12
    },
    {
      "source": "use-ci.Rmd",
      "filename": "use-ci.html",
      "title": "Using shinytest2 with continuous integration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "A repository with a single application",
        "check-app.yaml",
        "renv.lock, renv/activate.R, .Rprofile",
        "Running the first build",
        "A repository with multiple applications",
        "Testing applications in a package",
        "Frequently asked questions",
        "How do I add a status badge to my project?",
        "How do I use a DESCRIPTION file instead of {renv}?",
        "Example workflows"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2023-10-13 14:24:41",
      "commits": 8
    },
    {
      "source": "use-package.Rmd",
      "filename": "use-package.html",
      "title": "Using shinytest2 with R packages",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Applications defined in another file",
        "Applications using a function",
        "Application objects",
        "Understanding app support files: local_app_support() and friends",
        "When do you need these functions?",
        "Which function should you use?",
        "Benefits of using these functions",
        "Other setup steps",
        "How should I test multiple applications?",
        "Migrating from shinytest v0.4.0 to v0.5.0",
        "Continuous integration"
      ],
      "created": "2022-03-30 17:22:49",
      "modified": "2026-02-09 20:24:54",
      "commits": 10
    }
  ],
  "_score": 12.699374350696456,
  "_indexed": true,
  "_nocasepkg": "shinytest2",
  "_universes": [
    "rstudio",
    "schloerke"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-09T07:55:00.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/dbf18db3082d4fce201b3cf76a57fdd5fe489eb5625ea074ad92fa87f13d0286",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-09T07:55:07.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/704624c66c227c41bebc58f3f28d58113935f3af9abdae96434b2c20cb3efa2a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:59.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/2ab94687455b6e3288a19b539f172bad5f7be334e4544e05c0308391cdd94139",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-09T07:55:08.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/92c719b538dc3b9d6dbd353e5643954e257cc4d35b3d4ed09a17485569cc6923",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:33.000Z",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/3b3b65526fca1f91dc30e91b5cbdb388fb57617ec6fe22435f5cc78f3bc50f8c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-09T07:55:55.000Z",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/bcfe34b1f34fe923485600f052980c5fb17aa1553004deab05bac78e7f59f6fb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:13.000Z",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/8283ab934a1a48a82e12ef65b98d33edd153c0aefcbe1d135d8fdca8e00a9ab1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-09T07:57:21.000Z",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/b56a044a7c5a6f37cd171c27f5ac0b1e90d994e0cd3b65bcd923f0cd78eff5c8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.1",
      "date": "2026-10-09T07:55:39.000Z",
      "arch": "emscripten",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/59520cf54b0f9e175e6eb781d4023d7542220cec68f63b2669d1019996cc676e",
      "status": "success",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-09T07:57:17.000Z",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/4745d1e78de3e4e12c6e64e5a0dd7286b54a604c01e3cddbb3258c953fe7e05c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:22.000Z",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/5f5a175df3260b68f82cb8ee1a18d9b0c019012d4001d7472f55cf54d294759d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:00.000Z",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/e02e3c3b81c23e8c255dd159ef858e47e1d1ff325e6011f45a1ae4c5752208ef",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-09T07:57:37.000Z",
      "arch": "aarch64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/2297eebafbf9bddda02329ca74b52b4478cf7869c50414906e10f4033861bcd5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-09T07:54:00.000Z",
      "arch": "x86_64",
      "commit": "3c31e83163c037f62abd81f7fa02a467f3e32880",
      "fileid": "https://r2.ropensci.org/b981658c61e85a56206d5edebc926666d1f1bc26e3a8efadf3d1870d81da4980",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/rstudio/actions/runs/37901105685"
    }
  ]
}