NO MOCKS functional testing orchestration with platform detection
Orchestrates NO MOCKS functional testing across web, mobile, API, and database platforms.
/plugin marketplace add krzemienski/shannon-framework/plugin install shannon@shannon-frameworkOrchestrates Shannon's NO MOCKS functional testing philosophy through delegation to the functional-testing skill. Automatically detects platform (web, mobile, API), discovers existing tests, executes tests with real dependencies, and creates new test scaffolds.
Core Principle: Shannon NEVER uses mocks. All tests run against real browsers (Puppeteer), real mobile devices (iOS Simulator), real APIs (HTTP), and real databases.
Parse command arguments:
Mode Detection:
mode: "discover" (find all tests)mode: "execute" (run specific test)--create flag → mode: "create" (scaffold new test)--platform specified → Override auto-detectionPlatform Detection (if not specified):
*.test.js with puppeteer, playwright*.swift with XCTest, XCUITest*.test.js with supertest, axiosDelegate to @skill functional-testing with appropriate mode:
For DISCOVER mode:
@skill functional-testing
- Input:
* mode: "discover"
* platform: {detected_platform}
* scope: "all" | {test_directory}
- Output: test_inventory
The skill will:
For EXECUTE mode:
@skill functional-testing
- Input:
* mode: "execute"
* test_path: {user_provided_path}
* platform: {detected_platform}
* real_dependencies: true
* no_mocks: true (enforced)
- Output: test_results
The skill will:
For CREATE mode:
@skill functional-testing
- Input:
* mode: "create"
* test_type: {web|mobile|api|database}
* target: {component_to_test}
* platform: {detected_platform}
- Output: test_scaffold
The skill will:
Format and display based on mode:
DISCOVER Mode Output:
🧪 Shannon Functional Test Inventory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**Platform**: {primary_platform}
**Total Tests**: {test_count}
**Coverage**: {coverage_percentage}%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Test Breakdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Web Tests (Puppeteer):
{for each web_test}
├─ {test_file}
└─ Tests: {test_count}, Status: {passing|failing}
Mobile Tests (iOS Simulator):
{for each mobile_test}
├─ {test_file}
└─ Tests: {test_count}, Status: {passing|failing}
API Tests (Real HTTP):
{for each api_test}
├─ {test_file}
└─ Tests: {test_count}, Status: {passing|failing}
Database Tests (Real DB):
{for each db_test}
├─ {test_file}
└─ Tests: {test_count}, Status: {passing|failing}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Coverage Gaps
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Missing Tests:
{for each gap}
⚠️ {component_name}
- Priority: {priority}
- Suggested: /shannon:test --create {component_name}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Test Health
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ NO MOCKS Compliance: {compliance_percentage}%
{if violations}
⚠️ Mock Usage Detected:
{for each violation}
- {test_file}: Uses {mock_library}
- Action: Refactor to use real dependencies
{end if}
⏱️ Average Test Duration: {avg_duration}s
📊 Flakiness Score: {flakiness_score}/10 ({interpretation})
EXECUTE Mode Output:
🧪 Shannon Functional Test Execution
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**Test**: {test_path}
**Platform**: {platform}
**NO MOCKS**: ✅ Verified
**Duration**: {duration}s
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Results
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{if passed}
✅ PASSED ({passed_count}/{total_count} tests)
Test Details:
{for each test}
✓ {test_name} ({duration}ms)
{end for}
{else}
❌ FAILED ({failed_count}/{total_count} tests)
Failures:
{for each failure}
✗ {test_name}
Error: {error_message}
Location: {file}:{line}
Stack Trace:
{stack_trace}
{if screenshot_available}
Screenshot: {screenshot_path}
{end if}
{end for}
{end if}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Environment
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{if web_platform}
Browser: {browser_name} {browser_version}
Viewport: {width}x{height}
{end if}
{if mobile_platform}
Device: {device_name}
iOS Version: {ios_version}
Simulator UDID: {udid}
{end if}
{if api_platform}
API Base: {api_url}
Response Time: {avg_response_time}ms
{end if}
{if database_platform}
Database: {db_type}
Test Instance: {db_connection_string}
{end if}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next Steps
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{if passed}
✅ All tests passing
- Continue development with confidence
- Consider adding more test coverage
{else}
⚠️ Test failures detected
- Review failure details above
- Fix issues and re-run: /shannon:test {test_path}
- Check screenshot artifacts if available
{end if}
CREATE Mode Output:
🧪 Shannon Test Scaffold Created
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**Test File**: {created_test_path}
**Platform**: {platform}
**Type**: Functional (NO MOCKS)
**Target**: {target_component}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Generated Test Structure
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{test_scaffold_code}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Test Patterns Included
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Real dependency setup
✅ NO MOCKS enforcement
✅ Shannon test conventions
✅ Cleanup/teardown
✅ Error handling
✅ Screenshot capture (if applicable)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next Steps
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Review generated test: {created_test_path}
2. Customize test steps for your use case
3. Run test: /shannon:test {created_test_path}
4. Iterate until passing
The functional-testing skill automatically validates:
✅ Check 1: No mock libraries imported
- Verify no `jest.mock()`, `sinon`, `mockito`, etc.
✅ Check 2: Real browser/device used
- Puppeteer launches real Chrome
- iOS Simulator uses real device
- Not using jsdom or fake DOM
✅ Check 3: Real API calls
- HTTP requests hit actual endpoints
- Not using mock server or stubs
✅ Check 4: Real database operations
- Connects to test database instance
- Not using in-memory or fake DB
If violations detected:
⚠️ NO MOCKS VIOLATION DETECTED
File: {test_file}
Line: {line_number}
Issue: {violation_description}
{suggested_fix}
Shannon requires real dependencies. Refactor this test.
See Step 3 presentation templates above.
Required (based on platform):
Recommended:
/shannon:test
Scans project, finds all functional tests, reports coverage.
/shannon:test tests/functional/login.test.js
Executes login test with real browser.
/shannon:test tests/api/auth.test.js --platform api
Forces API platform detection (if auto-detect ambiguous).
/shannon:test --create checkout-flow --platform web
Generates Puppeteer test scaffold for checkout flow.
/shannon:test --create login-screen --platform mobile
Generates iOS Simulator test scaffold for login screen.
Shannon Framework has ZERO TOLERANCE for mocks:
NEVER:
jest.mock()sinon.stub()mockito.mock()ALWAYS:
Why? Mocks give false confidence. They test mocks, not code. Shannon tests the real system.