Skip to main content

Test Shiny App

Skill Verified Active

Test Shiny applications using shinytest2 for end-to-end browser tests and testServer() for unit-testing module server logic. Covers snapshot testing, CI integration, and mocking external services. Use when adding tests to an existing Shiny application, setting up a testing strategy for a new Shiny project, writing regression tests before refactoring Shiny code, or integrating Shiny app tests into CI/CD pipelines.

Purpose

To enable robust testing of Shiny applications, ensuring code quality, facilitating refactoring, and integrating tests into CI/CD pipelines.

Features

  • End-to-end browser testing with shinytest2
  • Unit testing of module server logic with testServer()
  • Snapshot testing for regression detection
  • CI integration guidance for GitHub Actions
  • Mocking external services

Use Cases

  • Adding tests to an existing Shiny application
  • Setting up a testing strategy for a new Shiny project
  • Writing regression tests before refactoring Shiny code
  • Integrating Shiny app tests into CI/CD pipelines

Non-Goals

  • Performing the actual Shiny application development
  • Providing a general-purpose R testing framework
  • Covering deployment or hosting strategies for Shiny apps

Installation

/plugin install agent-almanac@pjt222-agent-almanac

Quality Score

Verified
98 /100
Analyzed about 17 hours ago

Trust Signals

Last commit1 day ago
Stars14
LicenseMIT
Status
View Source

Similar Extensions

Run Puzzle Tests

100

Run the jigsawR test suite via WSL R execution. Supports full suite, filtered by pattern, or single file. Interprets pass/fail/skip counts and identifies failing tests. Never uses --vanilla flag (renv needs .Rprofile for activation). Use after modifying any R source code, after adding a new puzzle type or feature, before committing changes to verify nothing is broken, or when debugging a specific test failure.

Skill
pjt222

Build Shiny Module

100

Build reusable Shiny modules with proper namespace isolation using NS(). Covers module UI/server pairs, reactive return values, inter-module communication, and nested module composition. Use when extracting a reusable component from a growing Shiny app, building a UI widget used in multiple places, encapsulating complex reactive logic behind a clean interface, or composing larger applications from smaller, testable units.

Skill
pjt222

Scaffold Shiny App

99

Scaffold a new Shiny application using golem (production R package), rhino (enterprise), or vanilla (quick prototype) structure. Covers framework selection, project initialization, and first module creation. Use when starting a new interactive web application in R, creating a dashboard or data explorer prototype, setting up a production Shiny app as an R package with golem, or bootstrapping an enterprise Shiny project with rhino.

Skill
pjt222

Create Spatial Visualization

100

Create interactive maps, elevation profiles, and spatial visualizations from GPX tracks, waypoints, or route data using R (sf, leaflet, tmap) or Observable (D3, deck.gl). Covers data import, coordinate system handling, map styling, and export to HTML or image formats. Use when visualizing a planned or completed tour route on an interactive map, creating elevation profiles for hiking or cycling routes, overlaying waypoints and POIs on a basemap, or building a web-based trip dashboard.

Skill
pjt222

Containerize MCP Server

100

Containerize an R-based MCP (Model Context Protocol) server using Docker. Covers mcptools integration, port exposure, stdio vs HTTP transport, and connecting Claude Code to the containerized server. Use when deploying an R MCP server without requiring a local R installation, creating a reproducible MCP server environment, running MCP servers alongside other containerized services, or distributing an MCP server to other developers.

Skill
pjt222

Build Custom Mcp Server

100

Build a custom MCP (Model Context Protocol) server that exposes domain-specific tools to AI assistants. Covers server implementation in Node.js or R, tool definitions, transport configuration, and testing with Claude Code. Use when you need to expose custom functionality beyond what mcptools provides, when building specialized domain-specific AI integrations, or when wrapping existing APIs or services as MCP tools.

Skill
pjt222

© 2025 SkillRepo · Find the right skill, skip the noise.