Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @artifact-keeper/plugins
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## Summary
<!-- What does this PR do and why? -->

## Test Checklist
- [ ] `cargo check` passes
- [ ] `cargo test` passes on host target
- [ ] `cargo build --release` produces valid WASM
- [ ] Manually tested plugin loading (if applicable)
- [ ] No regressions in existing tests
43 changes: 43 additions & 0 deletions docs/TEST_PLAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# WASM Plugin Test Plan

## Overview

The artifact-keeper example plugin is a Rust WASM plugin template using wit-bindgen. It compiles to wasm32-wasip1 and implements the FormatHandler WIT contract.

## Test Inventory

| Test Type | Framework | Count | CI Job | Status |
|-----------|-----------|-------|--------|--------|
| Check | cargo check | Full | `check` | Active |
| Format | cargo fmt | Full | CI | Active |
| Lint | cargo clippy | Full | CI | Active |
| Unit | cargo test | Minimal | `test` | Active |
| WASM build | cargo build --release | Full | `build` | Active |
| Integration | (none) | 0 | - | Missing |

## How to Run

### Check and Lint
```bash
cargo check --workspace
cargo fmt --check
cargo clippy --workspace -- -D warnings
```

### Unit Tests (must run on host, not WASM target)
```bash
cargo test --target $(rustc -vV | grep host | awk '{print $2}')
```

### Build WASM
```bash
cargo build --release
# Output: target/wasm32-wasip1/release/unity_format_plugin.wasm
```

## Gaps and Roadmap

| Gap | Recommendation | Priority |
|-----|---------------|----------|
| No integration test | Add test that loads WASM in wasmtime and calls FormatHandler methods | P2 |
| No plugin lifecycle test | Test register, upload, download, list cycle | P3 |