Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Tests
symkit/bundle-ai-kit
cursor
testing
phpunit
unit-tests
integration-tests
filesystem
infection
temp-directory

Testing patterns for the Composer plugin test suite

Install
php artisan boost:add-skill symkit/bundle-ai-kit

Save this content to: .cursor/rules/tests.mdc

# Test Conventions

## General

- `declare(strict_types=1)` in test files
- Structure: `tests/Unit/` for pure logic, `tests/Integration/` for filesystem operations
- PHPUnit 10+ or 11+

## Minimum Required Tests

### Unit Tests

- `SkillNamesDiscoverer::discover()` — sorted skill folder names, ignores files
- `SyncContext` — value object

### Integration (`AiRulesInstaller::sync`)

- Rules → `.cursor/rules/*.mdc`
- All skill dirs (as discovered) → `.cursor/skills/{name}/`
- Non-`.mdc` files in skills copied as-is
- `AGENTS.md`, `.cursor/agents/*.md`
- Merge-only (never delete user files)

## Temp Directory Pattern

Use `sys_get_temp_dir()` + random suffix; recursive delete in `tearDown`.

## After Every Change

Run `make test` and `make infection`.

Test Conventions

General

  • declare(strict_types=1) in test files
  • Structure: tests/Unit/ for pure logic, tests/Integration/ for filesystem operations
  • PHPUnit 10+ or 11+

Minimum Required Tests

Unit Tests

  • SkillNamesDiscoverer::discover() — sorted skill folder names, ignores files
  • SyncContext — value object

Integration (AiRulesInstaller::sync)

  • Rules → .cursor/rules/*.mdc
  • All skill dirs (as discovered) → .cursor/skills/{name}/
  • Non-.mdc files in skills copied as-is
  • AGENTS.md, .cursor/agents/*.md
  • Merge-only (never delete user files)

Temp Directory Pattern

Use sys_get_temp_dir() + random suffix; recursive delete in tearDown.

After Every Change

Run make test and make infection.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib