Critical: - Fix EnsureUserSetupIsComplete middleware route name prefixes and redirect Subscription step to subscribe page (not onboarding) - Fix MCP session pollution: Auth::setUser() instead of Auth::login() - Remove dead BillingController::addWorkspace/removeWorkspace methods - Remove broken Workspace::pendingInvites() method Security (IDOR): - MediaController: add workspace ownership verification on all endpoints - UpdatePostRequest: scope label_ids validation to current workspace - UpdatePostRequest: scope platform IDs validation to current post Security (other): - Fix open redirect in login and registration (validate internal URLs) - Add validation to API PostController store/update (was $request->all()) - Prevent Owner role assignment via updateRole endpoint - Fix API post author attribution to use workspace owner Authorization: - PostController: use createPost policy instead of view for store/update/destroy Logic: - Post Status enum labels now use translation system instead of hardcoded Portuguese - Workspace deletion cleans up current_workspace_id for all affected members - StoreWorkspaceInviteRequest: replace Portuguese validation messages with __() Rename onboarding: - Step1.vue -> Role.vue, Step2.vue -> Connect.vue - Controller methods: step1->role, storeStep1->storeRole, step2->connect, storeStep2->storeConnect All 728 tests passing.
32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Enums\Post\Status;
|
|
|
|
test('post status has correct values', function () {
|
|
expect(Status::Draft->value)->toBe('draft');
|
|
expect(Status::Scheduled->value)->toBe('scheduled');
|
|
expect(Status::Publishing->value)->toBe('publishing');
|
|
expect(Status::Published->value)->toBe('published');
|
|
expect(Status::PartiallyPublished->value)->toBe('partially_published');
|
|
expect(Status::Failed->value)->toBe('failed');
|
|
});
|
|
|
|
test('post status has labels', function () {
|
|
expect(Status::Draft->label())->toBe('Draft');
|
|
expect(Status::Scheduled->label())->toBe('Scheduled');
|
|
expect(Status::Publishing->label())->toBe('Publishing');
|
|
expect(Status::Published->label())->toBe('Published');
|
|
expect(Status::PartiallyPublished->label())->toBe('Partially Published');
|
|
expect(Status::Failed->label())->toBe('Failed');
|
|
});
|
|
|
|
test('post status has colors', function () {
|
|
expect(Status::Draft->color())->toBe('gray');
|
|
expect(Status::Scheduled->color())->toBe('blue');
|
|
expect(Status::Publishing->color())->toBe('yellow');
|
|
expect(Status::Published->color())->toBe('green');
|
|
expect(Status::PartiallyPublished->color())->toBe('orange');
|
|
expect(Status::Failed->color())->toBe('red');
|
|
});
|