From f87f0d4b64f816092e2fb1608f8008d0f3feeabd Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 17:58:51 +0530 Subject: [PATCH 01/17] trying combining renderer and compiler tests --- .github/workflows/tests.yaml | 14 ++++++-------- tests/testthat.R | 6 +++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4fac9e523..948dc5ab1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - test-suite: [ renderer, compiler, CRAN ] + test-suite: [ combined, CRAN ] name: Test Suite ${{ matrix.test-suite }} env: @@ -39,13 +39,13 @@ jobs: run: git config --global user.email toby.hocking@r-project.org - name: Setup Node.js - if: matrix.test-suite == 'renderer' + if: matrix.test-suite == 'combined' uses: actions/setup-node@v3 with: node-version: '18' - name: Install Node.js dependencies - if: matrix.test-suite == 'renderer' + if: matrix.test-suite == 'combined' run: | npm install v8-to-istanbul echo "Node modules installed" @@ -54,15 +54,13 @@ jobs: run: | if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh - elif [ "$TEST_SUITE" == "compiler" ]; then - Rscript -e "source('tests/testthat.R', chdir = TRUE)" - Rscript -e 'covr::codecov(quiet = TRUE)' else Rscript -e "source('tests/testthat.R', chdir = TRUE)" + Rscript -e 'covr::codecov(quiet = TRUE)' fi - name: Convert JS coverage to Istanbul format - if: matrix.test-suite == 'renderer' + if: matrix.test-suite == 'combined' run: | if [ -f "tests/testthat/js-coverage.json" ]; then echo "Converting JS coverage to LCOV format..." @@ -73,7 +71,7 @@ jobs: fi - name: Upload JS coverage to Codecov - if: matrix.test-suite == 'renderer' + if: matrix.test-suite == 'combined' run: | if [ -f "coverage-istanbul.json" ]; then curl -Os https://uploader.codecov.io/latest/linux/codecov diff --git a/tests/testthat.R b/tests/testthat.R index cda0e3a13..6430157fc 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -7,14 +7,14 @@ source("helper-HTML.R") source("helper-plot-data.r") filter <- Sys.getenv("TEST_SUITE") gh.action <- Sys.getenv("GH_ACTION") -use.browser <- grepl("renderer", filter) collect.coverage <- Sys.getenv("COLLECT_COVERAGE", "FALSE") == "TRUE" +is.cran <- Sys.getenv("TEST_SUITE") == "CRAN" if(filter == ""){ filter <- NULL } message(gh.action) -if(use.browser) { +if(!is.cran) { tests_init() # Start coverage if enabled coverage_active <- FALSE @@ -32,6 +32,6 @@ if(use.browser) { } tests_exit() } else { - # Non-browser tests + # cran tests tests_run(filter=filter) } \ No newline at end of file From 7efaa1d88175226d9ecfc1d86107e1ab79273bad Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 18:14:50 +0530 Subject: [PATCH 02/17] corrected filter for combined tests --- tests/testthat.R | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/testthat.R b/tests/testthat.R index 6430157fc..5debf57dc 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -25,13 +25,10 @@ if(!is.cran) { } } # Run tests - tests_run(filter=filter) + tests_run() # Save coverage and cleanup if(coverage_active) { stop_js_coverage() } tests_exit() -} else { - # cran tests - tests_run(filter=filter) } \ No newline at end of file From de3922d36f27d1894d3ea6704edc6f686462d094 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 18:47:46 +0530 Subject: [PATCH 03/17] corrected filter for combined tests --- tests/testthat.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/testthat.R b/tests/testthat.R index 5debf57dc..afb873599 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -25,7 +25,10 @@ if(!is.cran) { } } # Run tests - tests_run() + message("\n=== Running COMPILER tests ===") + tests_run(filter = "compiler") + message("\n=== Running RENDERER tests ===") + tests_run(filter = "renderer") # Save coverage and cleanup if(coverage_active) { stop_js_coverage() From ea956b7cd9bc4306c188ef0755100d0f630096ba Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 19:04:31 +0530 Subject: [PATCH 04/17] running tests again --- tests/testthat.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat.R b/tests/testthat.R index afb873599..ad54cb20e 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -34,4 +34,4 @@ if(!is.cran) { stop_js_coverage() } tests_exit() -} \ No newline at end of file +} From 623e5abb44ceb3e5a9041ed9544b06d6d21b9135 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 19:50:02 +0530 Subject: [PATCH 05/17] combining normal tests and r coverage collection --- .github/workflows/tests.yaml | 4 ++-- tests/testthat.R | 2 +- tests/testthat/test-compiler-ghpages.R | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 948dc5ab1..ff7d2a88b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -55,8 +55,8 @@ jobs: if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh else - Rscript -e "source('tests/testthat.R', chdir = TRUE)" - Rscript -e 'covr::codecov(quiet = TRUE)' + echo "Running testthat and collecting R coverage with covr for Codecov..." + Rscript -e 'covr::codecov(type = "tests", flags = "r")' fi - name: Convert JS coverage to Istanbul format diff --git a/tests/testthat.R b/tests/testthat.R index ad54cb20e..afb873599 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -34,4 +34,4 @@ if(!is.cran) { stop_js_coverage() } tests_exit() -} +} \ No newline at end of file diff --git a/tests/testthat/test-compiler-ghpages.R b/tests/testthat/test-compiler-ghpages.R index d1a3d73d8..b8f2af11a 100644 --- a/tests/testthat/test-compiler-ghpages.R +++ b/tests/testthat/test-compiler-ghpages.R @@ -61,6 +61,7 @@ test_that("animint2pages() returns list of meta-data", { expect_Capture(update_list) }) +# This test is skipped under covr coverage collection due to environment manipulation. test_that("animint2pages raises an error if no GitHub token is present", { if (identical(Sys.getenv("R_COVR"), "true")) skip("Skip on covr: environment manipulation not supported") env.names <- c("GITHUB_PAT", "GITHUB_PAT_GITHUB_COM") From bd99ed7cd7b57f83cfdc4b25e25ef47ec771b1e7 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Thu, 24 Jul 2025 20:11:01 +0530 Subject: [PATCH 06/17] running tests again --- tests/testthat.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat.R b/tests/testthat.R index afb873599..ad54cb20e 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -34,4 +34,4 @@ if(!is.cran) { stop_js_coverage() } tests_exit() -} \ No newline at end of file +} From c9b77b3e712203b28fa51ea11f1eabcf4f52b70e Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Fri, 25 Jul 2025 11:39:51 +0530 Subject: [PATCH 07/17] checking r coverage collection --- .github/workflows/tests.yaml | 11 ++++------- tests/testthat.R | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index ed7a397ae..666f288e0 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -55,13 +55,10 @@ jobs: if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh else - echo "Running testthat and collecting R coverage with covr for Codecov..." - Rscript -e " - library(covr) - test_dir('tests/testthat', reporter = 'progress') - cov <- package_coverage(type = 'tests') - codecov(coverage = cov, quiet = FALSE, flags = 'r') - " + echo "Running testthat..." + Rscript -e "source('tests/testthat.R', chdir = TRUE)" + echo "Saving R coverage..." + Rscript -e 'covr::codecov(quiet = FALSE, flags = "r")' fi - name: Convert JS coverage to Istanbul format diff --git a/tests/testthat.R b/tests/testthat.R index f45c539a1..cf7e0bd1a 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -33,4 +33,4 @@ if(!is.cran) { message("JS coverage collection started") } tests_exit() -} +} \ No newline at end of file From 16a884609071c94e086c9fda76c677e22b5c534c Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sat, 26 Jul 2025 19:59:15 +0530 Subject: [PATCH 08/17] running tests only once --- .github/workflows/tests.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 666f288e0..834ed3734 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -55,10 +55,8 @@ jobs: if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh else - echo "Running testthat..." - Rscript -e "source('tests/testthat.R', chdir = TRUE)" - echo "Saving R coverage..." - Rscript -e 'covr::codecov(quiet = FALSE, flags = "r")' + echo "Running testthat with coverage collection..." + Rscript -e 'covr::codecov(file = "tests/testthat.R", quiet = FALSE, flags = "r")' fi - name: Convert JS coverage to Istanbul format From 9582af0fffbd4c60ffbf3b6bf11f51d73cefc813 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sat, 26 Jul 2025 20:30:58 +0530 Subject: [PATCH 09/17] added r coverage collection to testthat.r --- .github/workflows/tests.yaml | 2 +- tests/testthat.R | 36 ++++++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 834ed3734..e1a3351b1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -56,7 +56,7 @@ jobs: bash build.sh else echo "Running testthat with coverage collection..." - Rscript -e 'covr::codecov(file = "tests/testthat.R", quiet = FALSE, flags = "r")' + Rscript -e "source('tests/testthat.R', chdir = TRUE)" fi - name: Convert JS coverage to Istanbul format diff --git a/tests/testthat.R b/tests/testthat.R index cf7e0bd1a..95816ba93 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -16,21 +16,33 @@ message(gh.action) if(!is.cran) { tests_init() # Start coverage if enabled - coverage_active <- FALSE if(collect.coverage) { + message("Starting JS coverage collection...") coverage_active <- start_js_coverage() - if(coverage_active) { - message("JS coverage collection started") - } } - # Run tests - message("\n=== Running COMPILER tests ===") - tests_run(filter = "compiler") - message("\n=== Running RENDERER tests ===") - tests_run(filter = "renderer") - # Save coverage and cleanup - if(coverage_active) { - message("JS coverage collection started") + # Run tests with coverage tracking + if(collect.coverage) { + cov <- covr::environment_coverage({ + message("\n=== Running COMPILER tests ===") + tests_run(filter = "compiler") + message("\n=== Running RENDERER tests ===") + tests_run(filter = "renderer") + }) + } else { + message("\n=== Running COMPILER tests ===") + tests_run(filter = "compiler") + message("\n=== Running RENDERER tests ===") + tests_run(filter = "renderer") + } + # Save JS coverage + if(collect.coverage && exists("coverage_active") && coverage_active) { + stop_js_coverage() + message("JS coverage saved") } tests_exit() + # Save R coverage + if(collect.coverage) { + message("Uploading R coverage...") + covr::codecov(cov, quiet = FALSE, flags = "r") + } } \ No newline at end of file From 3d0dfe813bea0f2e2b41161e9850f62db5bea47d Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sat, 26 Jul 2025 20:50:10 +0530 Subject: [PATCH 10/17] added env --- tests/testthat.R | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/testthat.R b/tests/testthat.R index 95816ba93..0e846e7c8 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -20,20 +20,22 @@ if(!is.cran) { message("Starting JS coverage collection...") coverage_active <- start_js_coverage() } - # Run tests with coverage tracking - if(collect.coverage) { - cov <- covr::environment_coverage({ - message("\n=== Running COMPILER tests ===") - tests_run(filter = "compiler") - message("\n=== Running RENDERER tests ===") - tests_run(filter = "renderer") - }) - } else { + run_all_tests <- function() { message("\n=== Running COMPILER tests ===") tests_run(filter = "compiler") message("\n=== Running RENDERER tests ===") tests_run(filter = "renderer") } + # Run tests with coverage tracking + if(collect.coverage) { + cov <- covr::environment_coverage( + env = environment(), + test_files = NULL, + code = run_all_tests() + ) + } else { + run_all_tests() + } # Save JS coverage if(collect.coverage && exists("coverage_active") && coverage_active) { stop_js_coverage() From 16d7ef521819ecd7f3f437444892d78fe664ad45 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 14:29:32 +0530 Subject: [PATCH 11/17] using record_tests --- tests/testthat.R | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/testthat.R b/tests/testthat.R index 0e846e7c8..c361538ac 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -20,22 +20,22 @@ if(!is.cran) { message("Starting JS coverage collection...") coverage_active <- start_js_coverage() } - run_all_tests <- function() { + if(collect.coverage) { + message("Starting JS coverage collection...") + coverage_active <- start_js_coverage() + message("Running tests with R coverage...") + cov <- covr::record_tests({ message("\n=== Running COMPILER tests ===") tests_run(filter = "compiler") message("\n=== Running RENDERER tests ===") tests_run(filter = "renderer") - } - # Run tests with coverage tracking - if(collect.coverage) { - cov <- covr::environment_coverage( - env = environment(), - test_files = NULL, - code = run_all_tests() - ) - } else { - run_all_tests() - } + }) +} else { + message("\n=== Running COMPILER tests ===") + tests_run(filter = "compiler") + message("\n=== Running RENDERER tests ===") + tests_run(filter = "renderer") +} # Save JS coverage if(collect.coverage && exists("coverage_active") && coverage_active) { stop_js_coverage() From 67d91061da8341c4b117890d44522c5517dd00de Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 14:41:50 +0530 Subject: [PATCH 12/17] correct usage of record_tests --- tests/testthat.R | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/testthat.R b/tests/testthat.R index c361538ac..342d61b22 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -15,16 +15,12 @@ if(filter == ""){ message(gh.action) if(!is.cran) { tests_init() - # Start coverage if enabled - if(collect.coverage) { - message("Starting JS coverage collection...") - coverage_active <- start_js_coverage() - } if(collect.coverage) { + options(covr.record_tests = TRUE) message("Starting JS coverage collection...") coverage_active <- start_js_coverage() message("Running tests with R coverage...") - cov <- covr::record_tests({ + cov <- covr::environment_coverage(env = globalenv(), code = { message("\n=== Running COMPILER tests ===") tests_run(filter = "compiler") message("\n=== Running RENDERER tests ===") From ec9c7fe3084805a5a06c7c27d20dc73bdfde30d5 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 15:38:41 +0530 Subject: [PATCH 13/17] using package_coverage --- tests/testthat.R | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/testthat.R b/tests/testthat.R index 342d61b22..f5c66de78 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -17,21 +17,25 @@ if(!is.cran) { tests_init() if(collect.coverage) { options(covr.record_tests = TRUE) - message("Starting JS coverage collection...") - coverage_active <- start_js_coverage() - message("Running tests with R coverage...") - cov <- covr::environment_coverage(env = globalenv(), code = { + message("Starting JS coverage collection...") + coverage_active <- start_js_coverage() + cov <- covr::package_coverage( + type = "none", + quiet = FALSE # Show test output + ) + # Run tests normally - they'll be recorded by covr message("\n=== Running COMPILER tests ===") tests_run(filter = "compiler") message("\n=== Running RENDERER tests ===") tests_run(filter = "renderer") - }) -} else { - message("\n=== Running COMPILER tests ===") - tests_run(filter = "compiler") - message("\n=== Running RENDERER tests ===") - tests_run(filter = "renderer") -} + # Save coverage + cov <- covr::package_coverage() + } else { + message("\n=== Running COMPILER tests ===") + tests_run(filter = "compiler") + message("\n=== Running RENDERER tests ===") + tests_run(filter = "renderer") + } # Save JS coverage if(collect.coverage && exists("coverage_active") && coverage_active) { stop_js_coverage() From 502e13eafe4413f0f4563ead2ad4710dfc94c04e Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 16:23:34 +0530 Subject: [PATCH 14/17] trying seperate jobs for js and r coverage --- .github/workflows/tests.yaml | 17 +++++++----- tests/testthat.R | 54 ++++++++++++------------------------ 2 files changed, 28 insertions(+), 43 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index e1a3351b1..8419c8960 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - test-suite: [ combined, CRAN ] + test-suite: [ R_coverage, JS_coverage , CRAN ] name: Test Suite ${{ matrix.test-suite }} env: @@ -39,13 +39,13 @@ jobs: run: git config --global user.email toby.hocking@r-project.org - name: Setup Node.js - if: matrix.test-suite == 'combined' + if: matrix.test-suite == 'JS_coverage' uses: actions/setup-node@v3 with: node-version: '18' - name: Install Node.js dependencies - if: matrix.test-suite == 'combined' + if: matrix.test-suite == 'JS_coverage' run: | npm install v8-to-istanbul echo "Node modules installed" @@ -54,13 +54,16 @@ jobs: run: | if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh - else - echo "Running testthat with coverage collection..." + elif ["$TEST_SUITE" == "JS_coverage"]; then + echo "Running testthat with JS coverage collection..." Rscript -e "source('tests/testthat.R', chdir = TRUE)" + else + echo "Running testthat with R coverage collection..." + Rscript -e 'covr::codecov(quiet = FALSE, type = "tests", test_files = "tests/testthat.R")' fi - name: Convert JS coverage to Istanbul format - if: matrix.test-suite == 'combined' + if: matrix.test-suite == 'JS_coverage' run: | if [ -f "tests/testthat/js-coverage.json" ]; then echo "Converting JS coverage to LCOV format..." @@ -71,7 +74,7 @@ jobs: fi - name: Upload JS coverage to Codecov - if: matrix.test-suite == 'combined' + if: matrix.test-suite == 'JS_coverage' run: | if [ -f "coverage-istanbul.json" ]; then curl -Os https://uploader.codecov.io/latest/linux/codecov diff --git a/tests/testthat.R b/tests/testthat.R index f5c66de78..c68097dbe 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -5,46 +5,28 @@ setwd("testthat") source("helper-functions.R") source("helper-HTML.R") source("helper-plot-data.r") -filter <- Sys.getenv("TEST_SUITE") gh.action <- Sys.getenv("GH_ACTION") collect.coverage <- Sys.getenv("COLLECT_COVERAGE", "FALSE") == "TRUE" -is.cran <- Sys.getenv("TEST_SUITE") == "CRAN" if(filter == ""){ filter <- NULL } message(gh.action) -if(!is.cran) { - tests_init() - if(collect.coverage) { - options(covr.record_tests = TRUE) - message("Starting JS coverage collection...") - coverage_active <- start_js_coverage() - cov <- covr::package_coverage( - type = "none", - quiet = FALSE # Show test output - ) - # Run tests normally - they'll be recorded by covr - message("\n=== Running COMPILER tests ===") - tests_run(filter = "compiler") - message("\n=== Running RENDERER tests ===") - tests_run(filter = "renderer") - # Save coverage - cov <- covr::package_coverage() - } else { - message("\n=== Running COMPILER tests ===") - tests_run(filter = "compiler") - message("\n=== Running RENDERER tests ===") - tests_run(filter = "renderer") +tests_init() +# Start coverage if enabled +coverage_active <- FALSE +if(collect.coverage) { + coverage_active <- start_js_coverage() + if(coverage_active) { + message("JS coverage collection started") } - # Save JS coverage - if(collect.coverage && exists("coverage_active") && coverage_active) { - stop_js_coverage() - message("JS coverage saved") - } - tests_exit() - # Save R coverage - if(collect.coverage) { - message("Uploading R coverage...") - covr::codecov(cov, quiet = FALSE, flags = "r") - } -} \ No newline at end of file +} +# Run tests +message("\n=== Running COMPILER tests ===") +tests_run(filter = "compiler") +message("\n=== Running RENDERER tests ===") +tests_run(filter = "renderer") +# Save coverage and cleanup +if(coverage_active) { + stop_js_coverage() +} +tests_exit() \ No newline at end of file From 94ffdd1f8e5eac62da49b7bba568137df8cb622d Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 16:38:39 +0530 Subject: [PATCH 15/17] updated tests.yaml --- .github/workflows/tests.yaml | 4 ++-- tests/testthat.R | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 8419c8960..b69dfd655 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - test-suite: [ R_coverage, JS_coverage , CRAN ] + test-suite: [ R_coverage, JS_coverage, CRAN ] name: Test Suite ${{ matrix.test-suite }} env: @@ -54,7 +54,7 @@ jobs: run: | if [ "$TEST_SUITE" == "CRAN" ]; then bash build.sh - elif ["$TEST_SUITE" == "JS_coverage"]; then + elif [ "$TEST_SUITE" == "JS_coverage" ]; then echo "Running testthat with JS coverage collection..." Rscript -e "source('tests/testthat.R', chdir = TRUE)" else diff --git a/tests/testthat.R b/tests/testthat.R index c68097dbe..bc5d45685 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -5,16 +5,18 @@ setwd("testthat") source("helper-functions.R") source("helper-HTML.R") source("helper-plot-data.r") +filter <- Sys.getenv("TEST_SUITE") gh.action <- Sys.getenv("GH_ACTION") -collect.coverage <- Sys.getenv("COLLECT_COVERAGE", "FALSE") == "TRUE" +# collect.coverage <- Sys.getenv("COLLECT_COVERAGE", "FALSE") == "TRUE" if(filter == ""){ filter <- NULL } message(gh.action) tests_init() +is_js_coverage <- identical(Sys.getenv("TEST_SUITE"), "JS_coverage") # Start coverage if enabled coverage_active <- FALSE -if(collect.coverage) { +if(is_js_coverage) { coverage_active <- start_js_coverage() if(coverage_active) { message("JS coverage collection started") From 8762443243fc0018781abd6ab186a80dc03c1ab7 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 27 Jul 2025 17:20:12 +0530 Subject: [PATCH 16/17] added flag for R coverage --- .github/workflows/tests.yaml | 3 +-- tests/testthat.R | 7 +------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index b69dfd655..31ecdee8d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -19,7 +19,6 @@ jobs: TEST_SUITE: ${{ matrix.test-suite }} GITHUB_PAT: ${{ secrets.PAT_GITHUB }} GH_ACTION: "ENABLED" - COLLECT_COVERAGE: "TRUE" CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} steps: - uses: actions/checkout@v3 @@ -59,7 +58,7 @@ jobs: Rscript -e "source('tests/testthat.R', chdir = TRUE)" else echo "Running testthat with R coverage collection..." - Rscript -e 'covr::codecov(quiet = FALSE, type = "tests", test_files = "tests/testthat.R")' + Rscript -e 'covr::codecov(quiet = FALSE, type = "tests", test_files = "tests/testthat.R", flags = "r")' fi - name: Convert JS coverage to Istanbul format diff --git a/tests/testthat.R b/tests/testthat.R index bc5d45685..091c571f9 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -5,15 +5,10 @@ setwd("testthat") source("helper-functions.R") source("helper-HTML.R") source("helper-plot-data.r") -filter <- Sys.getenv("TEST_SUITE") gh.action <- Sys.getenv("GH_ACTION") -# collect.coverage <- Sys.getenv("COLLECT_COVERAGE", "FALSE") == "TRUE" -if(filter == ""){ - filter <- NULL -} +is_js_coverage <- Sys.getenv("TEST_SUITE") == "JS_coverage" message(gh.action) tests_init() -is_js_coverage <- identical(Sys.getenv("TEST_SUITE"), "JS_coverage") # Start coverage if enabled coverage_active <- FALSE if(is_js_coverage) { From 1afea22c72a136e6b3001efb28100552db25e7dd Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Tue, 29 Jul 2025 23:56:32 +0530 Subject: [PATCH 17/17] removed test-tt-inter --- tests/testthat/test-tt-inter.R | 72 ---------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 tests/testthat/test-tt-inter.R diff --git a/tests/testthat/test-tt-inter.R b/tests/testthat/test-tt-inter.R deleted file mode 100644 index ae40f4e24..000000000 --- a/tests/testthat/test-tt-inter.R +++ /dev/null @@ -1,72 +0,0 @@ -acontext("tooltip-interactivity") -## !!! wercker has some problem with this test, so not using this !!! -data("WorldBank", package = "animint") -WorldBank1975 <- WorldBank[WorldBank$year == 1975, ] - -test_that("Interactivity does not mess up tooltip titles",{ - ## Take only first 3 chars of region names. Avoid non-alphanumerics - WorldBank1975$region <- tolower( - substring(as.character(WorldBank1975$region), 1, 3)) - - ex_plot <- ggplot() + - geom_point(aes(fertility.rate, life.expectancy, color = region, - tooltip = country, href = "https://github.com"), - data = WorldBank1975) - - viz <- list(ex = ex_plot) - info <- animint2HTML(viz) - - # Apply clickID with some time difference - apply_with_interval <- function(func, list, interval){ - for (elem in list){ - acontext(paste0("id - ", elem)) - Sys.sleep(interval) - func(elem) - } - } - # Hide some points first and check rendered titles - hide_these_first <- - c("plot_ex_region_variable_eas_label", - "plot_ex_region_variable_eur_label", - "plot_ex_region_variable_lat_label", - "plot_ex_region_variable_mid_label", - "plot_ex_region_variable_sub_label") - - b <- apply_with_interval(clickID, hide_these_first, 1) - - Sys.sleep(1) - info$html <- getHTML() - - displayed_regions <- WorldBank1975$region == "nor" | - WorldBank1975$region == "sou" - displayed_countries <- unique(WorldBank1975$country[displayed_regions]) - - title_nodes1 <- - getNodeSet(info$html, '//g[@class="geom1_point_ex"]//a//title') - rendered_titles1 <- sapply(title_nodes1, xmlValue) - expect_identical(sort(rendered_titles1), sort(displayed_countries)) - - # Hide all countries -> No titles - hide_these_second <- - c("plot_ex_region_variable_nor_label", - "plot_ex_region_variable_sou_label") - b <- apply_with_interval(clickID, hide_these_second, 1) - - Sys.sleep(2) - info$html <- getHTML() - - title_nodes2 <- - getNodeSet(info$html, '//g[@class="geom1_point_ex"]//a//title') - expect_equal(length(title_nodes2), 0) - - # Show previous points again and compare titles - b <- apply_with_interval(clickID, hide_these_second, 1) - - Sys.sleep(1) - info$html <- getHTML() - - title_nodes3 <- - getNodeSet(info$html, '//g[@class="geom1_point_ex"]//a//title') - rendered_titles3 <- sapply(title_nodes3, xmlValue) - expect_identical(sort(rendered_titles3), sort(displayed_countries)) -})