- Account: Use unique emails/phone numbers to avoid collisions
- Functions: Use flexible assertions for counts and search results
- GraphQL: Add better error handling and use unique IDs
- Projects: Use assertGreaterThanOrEqual for list counts
- Webhooks: Use probe to find specific delete webhook event
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use foreach loop to check all deployments instead of hardcoded indices
- Fix offset test to not assume exactly 1 function exists
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- testCreateAttributes: Use $actorsId instead of undefined $data['actorsId']
- testCreateColumns: Use $actorsId instead of undefined $data['actorsId']
- testCreateAccountSession: Add assertion for account creation success
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The testListUsers function was using $totalUsers which was removed when
the test was refactored for parallel execution. Now uses $minUsers and
flexible assertions instead of position-based assertions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Under high parallel load, authentication can transiently fail with 401.
Add retry logic with delays to handle these transient failures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update account name before testing to ensure webhook data has
expected 'New Name' value, regardless of test execution order.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update bucket name before deleting to ensure webhook data has
expected name, regardless of whether testUpdateStorageBucket ran.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- setupDatabase() now fetches existing database on conflict
- setupTable() now fetches existing tables on conflict
- Enables parallel test execution with fixed resource IDs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- setupDatabase() now fetches existing database on conflict
- setupCollections() now fetches existing collections on conflict
- Enables parallel test execution with fixed resource IDs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use assertGreaterThanOrEqual instead of exact count
- Find users by ID instead of assuming position
- Document expected minimum user count for isolated execution
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create bucket1 within testListBucket instead of relying on
testCreateBucket running first. Accept 409 if bucket already exists.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use assertGreaterThanOrEqual and find bucket by ID instead of
assuming exact count and position after cursor query.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Account: Add createFreshAccountWithSession() for predictable session/log counts
- Account: Update testGetAccountSessions and testGetAccountLogs to use fresh accounts
- Storage: Fix testListBucket to find bucket by ID instead of assuming first position
- Messaging: Fix testListSubscribers to find subscriber by ID instead of assuming first position
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
These tests were creating resources directly in the shared collections,
which conflicts with setupAttributes() and setupIndexes() when tests
run in parallel. Now each test creates its own dedicated collection
to avoid conflicts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adding process ID and random bytes to uniqid() to avoid email
collisions when running tests in parallel with functional mode.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removed return statements from testManyToOneRelationship and
testManyToManyRelationship which were declared as void. These
cause PHP fatal errors in PHP 8.4+.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The testUpdateDocument method was declared as void but returned [].
This causes a PHP fatal error in PHP 8.4.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add search filters to isolate test data in testListSites to prevent
count assertions from failing when other test methods create sites
during parallel execution.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added setupDatabase() helper with caching to all permission test files
- Removed @depends from LegacyPermissionsMemberTest, LegacyPermissionsTeamTest
- Removed @depends from TablesDBPermissionsMemberTest, TablesDBPermissionsTeamTest
- Partial GraphQL test updates from agents
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enables --functional mode for parallel test execution by:
- Adding helper methods for independent test setup
- Removing all #[Depends] annotations
- Using static caching for shared resources
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use /databases endpoint instead of /tablesdb for database creation
- Use /columns/string instead of /attributes/string for table columns
- Fix testAttributesCollectionsAPI return type from array to void
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add helper methods createCollectionWithAttribute(), createTableWithAttribute(),
createCollectionWithIndex(), createTableWithIndex() to RealtimeConsoleClientTest
- Add createTeam() helper to RealtimeCustomClientTest
- Replace all @depends annotations with direct helper method calls
- Enable tests to run in parallel with --functional flag
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Parallel test execution with paratest overwhelms the single databases
worker when many tests create attributes simultaneously. Run these
specific services sequentially with PHPUnit to ensure the worker
can keep up with attribute processing jobs.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>