Files
michaelschiemer/tests/Framework/MagicLinks/ValueObjects/ActionResultDataTest.php
Michael Schiemer 5050c7d73a docs: consolidate documentation into organized structure
- Move 12 markdown files from root to docs/ subdirectories
- Organize documentation by category:
  • docs/troubleshooting/ (1 file)  - Technical troubleshooting guides
  • docs/deployment/      (4 files) - Deployment and security documentation
  • docs/guides/          (3 files) - Feature-specific guides
  • docs/planning/        (4 files) - Planning and improvement proposals

Root directory cleanup:
- Reduced from 16 to 4 markdown files in root
- Only essential project files remain:
  • CLAUDE.md (AI instructions)
  • README.md (Main project readme)
  • CLEANUP_PLAN.md (Current cleanup plan)
  • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements)

This improves:
 Documentation discoverability
 Logical organization by purpose
 Clean root directory
 Better maintainability
2025-10-05 11:05:04 +02:00

54 lines
1.7 KiB
PHP

<?php
use App\Framework\MagicLinks\ValueObjects\ActionResultData;
describe('ActionResultData', function () {
it('creates empty result data', function () {
$data = ActionResultData::empty();
expect($data->isEmpty())->toBeTrue();
expect($data->toArray())->toBe([]);
});
it('creates from array', function () {
$data = ActionResultData::fromArray(['user_id' => 123, 'email' => 'test@example.com']);
expect($data->isEmpty())->toBeFalse();
expect($data->toArray())->toBe(['user_id' => 123, 'email' => 'test@example.com']);
});
it('adds values immutably', function () {
$data = ActionResultData::empty();
$updated = $data->with('status', 'success');
expect($data->has('status'))->toBeFalse();
expect($updated->has('status'))->toBeTrue();
expect($updated->get('status'))->toBe('success');
});
it('retrieves values with defaults', function () {
$data = ActionResultData::fromArray(['status' => 'success']);
expect($data->get('status'))->toBe('success');
expect($data->get('missing', 'default'))->toBe('default');
});
it('merges data', function () {
$data1 = ActionResultData::fromArray(['user_id' => 123]);
$data2 = ActionResultData::fromArray(['email' => 'test@example.com']);
$merged = $data1->merge($data2);
expect($merged->toArray())->toBe([
'user_id' => 123,
'email' => 'test@example.com',
]);
});
it('checks key existence', function () {
$data = ActionResultData::fromArray(['user_id' => 123]);
expect($data->has('user_id'))->toBeTrue();
expect($data->has('missing'))->toBeFalse();
});
});