Engineering
E2E Testing Nori Skillsets Subcommands avatar

E2E Testing Nori Skillsets Subcommands

Perform end-to-end testing of nori-skillsets CLI subcommands using tmux for isolated, safe, and reproducible verification of filesystem side effects.

Introduction

This skill provides a robust framework for developers and quality engineers to perform end-to-end (E2E) testing on the nori-skillsets CLI. By leveraging tmux for process management and strict environment variable isolation, it allows for the interactive validation of CLI subcommands without risking the corruption of the user's local configuration or system-wide settings. The testing process ensures that every command, from initialization and downloading to skillset switching, behaves exactly as expected within a controlled, transient environment.

  • Full filesystem isolation using NORI_GLOBAL_CONFIG to redirect configuration paths away from the host home directory.

  • Automated environment setup and teardown processes to ensure a clean slate for every test case, targeting the /tmp/nori/skillsets-e2e-scenario/ path.

  • Integration with TUI puppeteering scripts, enabling scripted assertions of terminal UI elements such as clack-based prompts, spinners, selection menus, and output notes.

  • Validation of CLI state changes, including the creation, modification, or deletion of skillsets, MCP configurations, and agent-specific instruction files.

  • Support for complex test plans that involve seeding mock data, verifying success/failure flows, and confirming that the real environment remains untouched.

  • Always initialize the isolated environment using the provided e2e-setup script before running any subcommand.

  • Ensure all commands are executed with the environment variable NORI_GLOBAL_CONFIG set to the target E2E directory to prevent writing to ~/.nori/ or ~/.claude/.

  • Use tui-start and tui-stop for managing the tmux session lifecycle, which allows for repeatable TUI interaction patterns.

  • After test completion, verify expected side effects inside the temporary directory and execute e2e-teardown to perform cleanup.

  • Pay close attention to UI conventions such as clack intro and outro lines when writing assertion logic for test success or failure scenarios.

Repository Stats

Stars
128
Forks
9
Open Issues
7
Language
TypeScript
Default Branch
main
Sync Status
Idle
Last Synced
May 3, 2026, 07:33 PM
View on GitHub